Python 文件操作
Python中打开文件使用1个函数和3个方法
-
open函数负责新建、打开文件,并返回文件操作对象
-
read方法将文件内容读取到内存
-
write方法将指定内容写入文件
-
close方法关闭文件
read/write/close三个方法都需要通过文件对象来调用,并且open文件后必须close文件
1 open函数——打开(新建)文件
open函数根据地址打开文件,如果文件不存在,则创建文件,返回的是文件操作对象
语法如下:
open(name[, mode,encoding=])
参数说明:
-
name:要打开或新建的文件地址和名称,字符串形式,例如:'E:/Python测试文件/文件操作/菜单.txt'
-
mode:文件访问模式,只读,只写等,可选参数,以字符串形式指定,默认文件访问模式为只读('r')
-
encoding=:编码解码标准,如果文件内容包含中文信息,需指定encoding='utf-8',不然会报错
访问模式列表
模式 | 说明 |
---|---|
t | 文本模式 (默认)。 |
x | 写模式,新建一个文件,如果该文件已存在则会报错。 |
b | 二进制模式。 |
+ | 打开一个文件进行更新(可读可写)。 |
U | 通用换行模式(不推荐)。 |
r | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
r+ | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
rb | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。一般用于非文本文件如图片等。 |
rb+ | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。一般用于非文本文件如图片等。 |
w | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
w+ | 打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。 |
wb | 以二进制格式打开一个文件只用于写入。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
wb+ | 以二进制格式打开一个文件用于读写。如果该文件已存在则打开文件,并从开头开始编辑,即原有内容会被删除。如果该文件不存在,创建新文件。一般用于非文本文件如图片等。 |
a | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
a+ | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
ab | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
ab+ | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
2 read方法——读取内容到内存
read方法用于将文件内容读取到内存
语法为:
file.read(number)
number用于指定读取的字符数,换行符等字符也计算在内,示例如下:
f = open('D:/Excel测试数据/新建文本文档.txt', 'r+', encoding='utf-8')
print(f.read(7))
f.close()
结果如下:
参数number=7,所以返回了7个字符:6个汉字和一个换行符
read方法注意事项:
-
open函数打开文件时指定的访问模式会影响后续的读取,例如使用追加模式'a+'打开,指针在文件末尾,所以read读取时也从末尾开始,将读取不到任何内容
-
使用read方法读取了多次,那么后面继续使用read读取的数据是从上次读完后的位置开始的
-
read方法默认会把文件的所有内容一次性读取到内存,最好指定读取的字符数。否则如果文件太大,对内存的占用会非常严重
读取文件内容还有readlines方法、readline方法
-
readlines:可以按照行的方式把整个文件中的内容进行一次性读取,读取所有行(直到结束符EOF)并返回列表,并且返回的是一个列表,其中每一行(依据换行符进行,返回的字符包含换行符)的数据为一个元素
-
readline:对文件的数据按行读取(行的划分是\n),每次只读取一行,返回的内容包含换行符。如果有多次读取的话,下面一次读取的偏移量是上面读取后的偏移量
特别注意:如果想通过readline、readlines方法对文件内容进行打印,需注意返回值本身包含了换行符,可以将print函数的end参数指定为空格
3 write方法——向文件写入内容
write方法用于向文件写入内容
语法为:
file.write('content')
write方法注意事项:
-
open函数打开文件时指定的访问模式会影响后续的写入,例如使用写入模式'w'打开,write写入时会将原内容删除,所以想追加内容时,需要使用追加模式打开
-
使用write方法写入了多次,那么后面继续使用write写入的数据是从上次写入后的位置开始的
4 close方法——关闭文件
close方法用于关闭文件,每次操作完毕后都要记得关闭文件
语法为:
file.close()
5 with opne as——避免忘记关闭文件
语法为:
with open(name[, mode,encoding=]) as f:
在with中代码块执行完成后,将会关闭文件,这样就避免了忘记关闭文件