文件编码
将文件的内容翻译为二进制
文件操作
打开文件 open函数
语法:
open(name, mode, encoding)
name:文件名的字符串,可以包含具体路径。若没有路径,则默认为与py文件位于同一层
mode:打开文件的模式:只读、写入、追加等
encoding:编码格式,常用UTF-8。注意encoding不是第三个参数
通过open函数会得到一个文件对象
f = open("test.txt", 'r', encoding='UTF-8')# encoding使用关键字传参
# 以只读方式打开test.txt,得到一个文件对象
读取文件 r模式
test.txt:
hello world
hhhh
abandon
注意:若多次读取文件,则会从上次读取的末尾位置开始读取数据。
① read()方法:
文件对象.read(num)
num表示读取的长度,单位为字节。若没有num,则代表全部读取。注意’\n’占一个字节
读取到的数据类型为str
data=f.read()
print(data)
输出:
hello world
hhhh
abandon
② readlines()方法:
文件对象.readlines()
按照行的方式把整个文件中的内容进行一次性读取,并且返回一个列表。其中每行元素为一个元素。
data=f.readlines()
print(data) # ['hello world\n', 'hhhh\n', 'abandon']
③ readline()方法
文件对象.readline()
调用一次,读取一行。注意,一行中会包含’\n’。读取到的数据类型为str。
data = f.readline()
print(data)
data = f.readline()
print(data)
data = f.readline()
print(data)
输出:
hello world
hhhh
abandon
④ for循环读取文件
利用for循环读取文件的每一行数据。
for line in f:
print(line)
关闭文件 close()
若不关闭文件,程序运行时,该文件会被Python程序一直占用。
文件对象.close()
with open 语法
通过在 with open的语句块中对文件进行操作。在操作结束后,会自动close文件。防止忘记关闭文件。
with open("test.txt", "r", encoding="UTF-8") as f:
f.read()
文件写入 w模式
打开文件 open()方法 --> 写入文件 write()方法 --> 刷新文件 flush()方法
open()打开文件
f = open("test.txt", "w")# 以写入模式打开
注意:若test.txt不存在,则会新建一个test.txt文件。
write(data) 写入文件:
f.write(data)
flush() 刷新文件:
调用write方法时,数据并没有直接写入文件,而是存放到缓冲区中。
只有调用了 flush() 方法,数据才会真正地写入文件。
可以避免频繁地写入磁盘
而close()方法内置了flush功能。
注意:由于是以 “w”写入模式打开,因此写入的数据会覆盖文件中原有的数据,将原有数据清空。
追加写入 a模式
与写入模式基本一致,只是写入数据时,不会清空原有的数据,而是在末尾追加数据。
打开文件 open() --> 写入数据 write() --> 刷新文件 flush()
打开文件
f=open("test.txt", "a")# 以追加模式打开
若文件不存在,则会创建新文件。
写入文件 write()
f.write(data)# 在末尾追加数据