python中文件的打开与关闭
1、python文件的打开方法
f = open(filename[,mode[,buff]])
name :文件路径
mode:打开方式
buf:缓存大小
打开方式:
r 以读方式打开文件,可读取文件信息。
w 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容;如果文件不存在则创建
a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
r+ 以读写方式打开文件,可对文件进行读和写操作。
w+ 消除文件内容,然后以读写方式打开文件。
a+ 以读写方式打开文件,并把文件指针移到文件尾。
b 以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。
w 以写方式打开文件,可向文件写入信息。如文件存在,则清空该文件,再写入新内容;如果文件不存在则创建
a 以追加模式打开文件(即一打开文件,文件指针自动移到文件末尾),如果文件不存在则创建
r+ 以读写方式打开文件,可对文件进行读和写操作。
w+ 消除文件内容,然后以读写方式打开文件。
a+ 以读写方式打开文件,并把文件指针移到文件尾。
b 以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。
2、文件读取方法
read([size]): 读取文件(读取size个字节,默认读取全部)
readline([size]):读取一行
readlines([size]):读取buff所能缓存的最大的文件,返回每一行所组成的列表
iter: 使用迭代器,读取整个文件。
3、文件的写入方法:
write(str):将字符串写入文件
writelines(sequence_of_strings):写多行到文件
写入磁盘时机:
a、主动调用close()或者flush()方法,写缓存同步到磁盘
b、写入数据量大于或者等于写缓存,写缓存同步到磁盘
简单的来说,就是如果不使用以上两种方法,内容是不被写入到文件里的,只是以缓存的方式存在
例:
1、写入文件内容
f = open('test.txt','w') #文件以写的方式打开 f.write("print 'test'") f.close() #一定要注意关闭
2、以不同的方式再次写入文件内容
f = open('test.txt', 'r+') f.read() print 'test' f.write('hello') f.close()
先读文件内容再写入,文件的内容为“print 'test'hello”
若没有f.read(),代码如下,文件的内容为hello 'test'
f = open('test.txt', 'r+') f.write('hello') f.close()
这是因为文件指针的原因,当f.read()后,文件指针指到文件末尾,写入的内容相当于追加;否则的话就像例子中的效果是覆盖