ssssseceeceihishesce############文件操做###########python
Python 内置了读写文件的函数,用法和 C 是兼容的;hexo
操做系统不容许普通的程序直接操做磁盘,因此,读写文件就是请求操做系统打开一个文件对象(又称文件描述符),而后,经过操做系统提供的接口从这个文件对象操做;ide
1.文件读写的过程:函数
(1). 打开文件spa
(2). 向文件中写入内容;操作系统
(3). 关闭文件指针
先建立一个文件,而且写入东西视频
f=open('file') ##默认为只读对象
f.read()blog
f.close()
In [7]: f=open('file','w') ##只写
In [8]: f.write('hello,word')
In [9]: f.read()
---------------------------------------------------------------------------
IOError Traceback (most recent call last)
<ipython-input-9-bacd0e0f09a3> in <module>()
----> 1 f.read()
IOError: File not open for reading
In [10]: f.close()
2。其余的文件读写几种模式
r:能够读取文件内容,不能够写入,若是文件不存在则报错
r+:可读写,依次覆盖源文件的内容,若是文件不存在则报错
w:能够写入文件内容,不能够读取,若是文件不存在则建立,并覆盖原文件内容
w+:可读写,打开文件时直接删除原文件的内容,若是文件不存在则建立
a:写入,文件末尾追加,文件不存在则建立
a+:读写,文件追加,文件不存在则建立
编写一个文件,将file文件中的hello替换成westos,并另存为一文件hello.bak
f1=open('file','r')
f2=open('westos','a+')
str1=f1.read()
str2=str1.replace('hello','westos')
f2.write(str2)
f1.close()
f2.close()
二进制文件
要读取二进制文件,好比图片、视频等等,用 'rb' 模式打开文件便可
>>> f = open('/root/test.jpg', 'rb')
>>> f.read()
>>>f.close()
5. f.flush()函数,将缓冲区的内容写入到硬盘中
6. f.seek(offset[,whence]),offset 表示移动多少字节, whence 为 1 的时候表示相对于当前位置移动的;当 2 的时候从文件的末尾日后移动,但不必定全部的平台都支持;默认为 0 表示从文件开头日后移动
7. f.tell()函数,返回当前文件指针的偏移量:
8.with 用法
先建立一个lelpha文件,而且写入多行字符
In [1]: with open('elepha') as f: ...: for line in f: ...: print line ...: qewwqqqqwqqwqqqqqrqqqrqrqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrrrrrrrtttttttttttttttttttttttyyyyyyyyyyyyyyyyyyyy