读写文件是最常见的IO操作。使用的是python3.6.5.
1文件读取:
open(name[.mode[.buffering]])
使用open函数打开文件,name是指文件的名字。mode(模式),buffering(缓冲区)这两个是可选的。默认模式是读模式,缓冲区是无。
1.1文件模式:
r | 读模式 |
w | 写模式 |
a | 追加模式 |
b | 二进制模式(可与其他模式混用例如可rb读取一个二进制文件)(例如MP3、图像等格式使用) |
+ | 读/写模式(可与其他模式混用) |
注意:w写模式是会把原来文件的内容全部清除再写进去,要不想全部清除,在原有的基础上补充就用a追加模式。
1.2文件缓冲区
默认是0,无缓冲,直接将数据写入;当参数大于等于1,是有缓冲的,是将数据先写入内存,只有使用flush或者close函数才会将数据写到硬盘。当参数为1的时候,读取到换行就会将数据写入。当参数大于1的时候,参数为缓冲区的大小(单位是字节)。
1.3文件读取
方法有read(),readline(),close().
read()方法:读取文件所有内容(全部读到内存中)。
readline()方法:读取文件的一行。
close()方法:关闭对文件的引用。
假设当前目录下有一个a.txt文件,并且里面有数据。那么打开这个文件读取并显示他的内容的代码如下:
f=open('a.txt','r')
print(f.read())
f.close()
假设当前目录下有一个a.txt文件,并且里面有很多数据。我只想看他的一行数据,打开这个文件读取并显示他的第一行数据的代码如下:
f=open('a.txt','r')
print(f.readline())
f.close()
close()函数是最后调用的,关闭对文件的引用。
2文件写入:
写和读的操作是差不多的,只要更改为write()方法还有更改一下模式就行。
f=open('a.txt','a')
f.write("aaaaa")
f.close()
由于可能出现IO异常,出现异常后后面的程序就不会继续执行下去。所以
try:
f=open('a.txt','a')
f.write("aaaaa")
finally:
if f:
f.close()
3更简单的方式
使用with语句
读:
with open('a.txt','r') as f:
print(f.read())
写:
with open('a.txt','w') as f:
f.write("bbbbb")