一、打开文件
一般在对文件进行IO操作之前,是需要先将文件打开
- 语法:open(file_name [, access_mode][, buffering])
- 参数说明:
- file_name为文件的名称,这是一个必填的参数,返回的是一个文件的对象;
- access_mode是可选参数,默认的access_mode是读模式
- buffering是可选的参数,默认buffering是无。
二、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 :
1 try: 2 f=open('D:\test.txt','r') 3 f.read() 4 #f.readline() 5 #f.readlines() 6 finally: 7 if f: 8 f.close()
还有另外一种用法,这种用法就更为简便:
1 with open('D:\test.txt','r') as f: 2 f.read() 3 #f.readline() 4 #f.readlines()
五、文件写入方法说明
方法 | 说明 |
write() | 写入 |