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中代码块执行完成后,将会关闭文件,这样就避免了忘记关闭文件

posted @ 2021-05-10 21:47  弓长无忌  阅读(484)  评论(0编辑  收藏  举报