文件操作
Python3用open()方法打开文件并返回文件句柄,有了文件句柄就可以对文件进行各种操作了。
打开文件:
open(“文件名” , 打开方式) 如: f=open(“file.txt”, ‘r’)
# 文件名通常是文件全名,即有路径和扩展名的文件名,如果没有写路径默认为当前路径
# 打开方式决定了文件打开后的状态及如何操作:
r # 只读方式(默认的模式,打开的文件不存在会报错)
w # 只写方式(不可读,文件不存在则创建,存在则清空内容)
a # 追加写方式(不可读,文件不存在则创建,存在则追加内容)
r+ # 可读、可写;可追加,如果打开的文件不存在的话,会报错
w+ # 写读模式,存在的文件内容会被清空,可以读到已经写的文件内容
a+ #追加读写模式,不存在则创建;存在则只追加内容
文件操作的常用方法:
f = open('file.txt','r+',encoding='utf-8') #encoding参数可以指定文件的编码
f.readline() # 读一行,返回数据的类型为‘字符串’
f.readable() # 判断文件是否可读
f.writable() # 判断文件是否可写
f.encoding # 返回文件的编码
f.read() # 读取所有内容,返回数据的类型为‘字符串’
# 大文件时不要用,因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
f.readlines() #读取所有文件内容,返回数据的类型是‘列表’,元素是每行的数据,大文件时不要用
# 因为会把文件内容都读到内存中,内存不够的话,会把内存撑爆
f.tell() # 获取当前文件的指针指向
f.seek(0) # 把当前文件指针指向哪
f.write('爱情证书') # 写一个字符串到文件
f.writelines([‘123’,’456’,’789’]) # 写一个列表到文件
f.fulsh() #写入文件后,立即从内存中把数据写到磁盘中
f.truncate() #清空文件内容
f.close() # 关闭文件
高效读取文件的方法,是利用循环遍历读取文件的行:
f = open('file.txt')
for line in f:
print(line)
# line是每行文件的内容,读完一行,就会释放一行的内存
使用with结构:
文件操作结束后需要关闭文件释放系统资源,但关闭文件常常会被忘记,使用whith方法后文件会被自动关闭。
#打开一个文件,把这个文件的句柄付给f
with open('file.txt','r') as f:
for line in f:
print(line)
#这个是多文件的操作,打开两个文件,fr是读file.txt,fw是新建一个file_bak文件
with open('file.txt') as fr,with open('file_bak','w') as fw:
for line in fr: # 循环file.txt中的每一行
fw.write(line) #写到file_bak文件中