python中的文件操作很简单、很直接,相比于java、c++中要简单。
python中的文件是文件对象,或者类文件对象。什么是类文件对象?其实就是实现了文件对象的read和write等方法的类的实例。
好了,继续采用问答形式展开本文。
1. 如何打开文件?
很简单,利用下面的语句
f = open(‘1.txt’,‘w',1)
open函数包含三个参数,分别是:
文件名(字符串形式,注意绝对路径与相对路径问题)
打开的模式
缓冲区大小
第二和第三个参数可省略,默认打开模式为r(只读模式)。
2.有哪些打开模式?
这些打开模式基本上c++中一样一样的~
r,只读模式,打开的文件必须是存在的,如果不存在会报错,打印一个IOError异常
w,只写模式,打开的文件可以不存在,但是注意,如果打开的文件是存在的,那么文件的内容会被清空。
a,追加模式,这种模式下,打开文件后,会将当前文件操作位置置于最后位置的下一个位置,然后只允许写入。注意这种模式不要求打开的文件是存在的,如果存在也不会 清空其中的内容。
b, 二进制模式打开。
r+,可读写模式, 要求打开的文件必须存在。
w+,可读写模式,参看w模式,其实就是比w模式多了个可写入的功能。
a+,可读写的追加。
还有rb+、wb+、ab+模式。
3. 如何读、写文件?
文件对象或类文件对象都提供了相关的文件读写方法,如下
f.read([size]),读size个字节大小的数据,如果没有指定size,会读完整个文件。
f.readline([size]),读取当前行内容,包括换行符,指定size则读入size个字节的内容
f.readlines(),逐行读取文件内容,返回一个列表,每个元素是文件的某行内容
f.write(str),把字符串str写入文件
f.writelines(lst),与f.readlines()相反
4. 文件如何关闭?
文件的关闭非常重要,在文件关闭时会清理相关的资源,并将缓冲区中的内容写入磁盘等io终端设备。
f.close()即可关闭文件。为了保证文件关闭,即使发生异常,我们也要在程序崩溃等情况前将文件关闭,可以利用try/finally结构。
5. 如何在任意的位置读、写文件?
对文件随机访问的支持非常重要。
文件对象内部维护一个文件操作“指针”,指向下一个将要读、写的位置。
f.tell(),输出当前操作位置,相对于文件开始位置。
f. seek(offset[,whence]),移动指针,offset表示偏移量(就是移动几个位置),whence表示移动时的“参考”,1表示相对于当前位置,2相对于文件结束位置,默认为0,表示相对于文件开始位置
6. 其他注意的地方
在测试r+,w+模式时,发现python中文件可读可写时,也只有一个文件操作“指针”!
另外,在使用可读可写模式时,一定得注意是否存在缓冲区及其大小,否则很容易出现意外的错误。