目录
打开文件
一般在对文件进行IO操作之前,是需要先将文件打开
-
语法:open(file_name [, access_mode][, buffering])
-
参数说明:
-
file_name为文件的名称,这是一个必填的参数,返回的是一个文件的对象;
-
access_mode是可选参数,默认的access_mode是读模式
-
buffering是可选的参数,默认buffering是无。
access_mode(文件模式)参数说明
access_mode参数值 | 参数值的描述 |
‘r’ | 读 |
‘rb’ | 二进制读 |
‘w’ | 写 |
‘wb’ | 二进制写 |
‘a’ | 追加 |
‘ab’ | 二进制追加 |
‘b’ | 二进制,处理一般的文本文件时,是用不到这个的,但是处理二进制的文件,比如图片或者音乐之类的,就应该在模式钟增加‘b’ |
buffering(文件缓冲区)参数说明
buffering参数值 | 参数值的描述 |
0 | 不会寄存无缓冲,直接就把数据写到硬盘上 |
1 | 有缓冲,数据会先写到内存里,只有最后调用flush()或者是close()才会把缓冲数据写到硬盘里 |
大于1的整数 | 寄存区的缓冲大小,单位是字节 |
负值 | 寄存区的缓冲大小则为系统默认 |
文件读取方法说明
方法 | 说明 |
read() | 按字节读取 |
readline() | 按行读取,每次读一行 |
readlines() | 一次读取所有内容,并按行返回列表 |
不管是调用read()还是readlines()读取文件,最后一定要记得调用close(),否则会一直占用资源。不过,如果在执行过程中出现异常的话,是调用不了close()的,所以这个时候可以用上try ... finally :
try:
f=open('D:\test.txt','r')
f.read()
#f.readline()
#f.readlines()
finally:
if f:
f.close()
还有另外一种用法,这种用法就更为简便:
with open('D:\test.txt','r') as f:
f.read()
#f.readline()
#f.readlines()
文件写入方法说明
方法 | 说明 |
write() | 写入 |
以上资料大部分出自《Python爬虫开发与项目实战》一书