03 python学习笔记-文件操作
本文内容主要包括以下方面:
1. 文件操作基本认识
2. 只读(r, rb)
3. 只写(w, wb)
4. 追加(a, ab)
5. r+读写
6. w+写读
7. a+写读(追加写读)
8. 文件的修改
一.文件操作基本认识
使用python内置的open( ) 函数打开一个文件,并返回文件对象,然后通过这个对象就可以进行各种操作。在对文件进行处理过程都需要使用到这个函数,如果文件无法被打开,会抛出 OSError。
打开文件的方式有以下几种:
-
‘r’:只读。该文件必须已存在,打开不存在文件会报错。
-
‘r+’:可读可写。该文件必须已存在,写为追加在文件内容末尾。
-
‘w’:只写。打开即默认创建一个新文件,如果文件已存在,则覆盖写(即文件内原始数据会被新写入的数据清空覆盖)。
-
‘w+’:写读。打开创建新文件并写入数据,如果文件已存在,则覆盖写。
-
‘a’:追加写。若打开的是已有文件则直接对已有文件操作,若打开文件不存在则创建新文件,只能执行写(追加在后面),不能读。
-
‘a+’:追加读写。打开文件方式与写入方式和'a'一样,但是可以读。需注意的是你若刚用‘a+’打开一个文件,一般不能直接读取,因为此时光标已经是文件末尾,除非你把光标移动到初始位置或任意非末尾的位置。(可使用seek() 方法解决这个问题)
-
b:以二进制模式打开文件,而不是以文本模式。该模式只对Windows或Dos有效,类Unix的文件是用二进制模式进行操作的。
文件对象方法:
方法 |
描述 |
f.close() |
关闭文件,记住用open()打开文件后一定要记得关闭它,否则会占用系统的可打开文件句柄数。 |
f.fileno() |
获得文件描述符,是一个数字 |
f.flush() |
刷新输出缓存 |
f.isatty() |
如果文件是一个交互终端,则返回True,否则返回False。 |
f.read([count]) |
读出文件,如果有count,则读出count个字节。 |
f.readline() |
读出一行信息。 |
f.readlines() |
读出所有行,也就是读出整个文件的信息。 |
f.seek(offset[,where]) |
把文件指针移动到相对于where的offset位置。where为0表示文件开始处,这是默认值 ;1表示当前位置;2表示文件结尾。 |
f.tell() |
获得文件指针位置。 |
f.truncate([size]) |
截取文件,使文件的大小为size。 |
f.write(string) |
把string字符串写入文件。 |
f.writelines(list) |
把list中的字符串一行一行地写入文件,是连续写入文件,没有换行。 |
注意:
使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。
open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。
二.文件操作实例
1.操作方式:
读文件,r模式:
若未注明模式,默认只读模式’r‘打开:
r+模式:
w模式:
w+模式:
a模式:
a+模式:
2.文件修改: