文件操作
一、打开文件的模式
文件操作分为3个过程,文件打开,操作文件,关闭文件
f=open('1.txt','r',encoding='utf-8') #打开文件 data=f.read() #操作文件 f.close() #关闭文件 print(data)
每次都要关闭文件很麻烦,而且有可能在实际工作操作的时候忘了关闭文件,所以我们用另一种操作,用with语句来操作,这样就不需要手动来关闭文件。
# 用with语句打开,不需要自动关闭 with open('1.txt','r',encoding='utf-8') as f: print(f.read())
文件打开方式:
#1. 打开文件的模式有(默认为文本模式): r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】 w,只写模式【不可读;不存在则创建;存在则清空内容】 a, 只追加写模式【不可读;不存在则创建;存在则只追加内容】 #2. 对于非文本文件,我们只能使用b模式,"b"表示以字节的方式操作(而所有文件也都是以字节的形式存储的,使用这种模式无需考虑文本文件的字符编码、图片文件的jgp格式、视频文件的avi格式) rb wb ab 注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码 #3. 了解部分 "+" 表示可以同时读写某个文件 r+, 读写【可读,可写】,写的时候在末尾追加,指针移到到最后 w+,写读【可读,可写】,存在的话先清空 一写的时候指针到最后 a+, 写读【可读,可写】打开的时候指针已经移到最后,写的时候不管怎样都往文件末尾追加 x, 只写模式【不可读;不存在则创建,存在则报错】 x+ ,写读【可读,可写】 xb
二、操作文件的方法
#掌握 f.read() #读取所有内容,光标移动到文件末尾 f.readline() #读取一行内容,光标移动到第二行首部 f.readlines() #读取每一行内容,存放于列表中 f.write('1111\n222\n') #针对文本模式的写,需要自己写换行符 f.write('1111\n222\n'.encode('utf-8')) #针对b模式的写,需要自己写换行符 f.writelines(['333\n','444\n']) #文件模式 f.writelines([bytes('333\n',encoding='utf-8'),'444\n'.encode('utf-8')]) #b模式 #了解 f.readable() #文件是否可读 f.writable() #文件是否可读 f.closed #文件是否关闭 f.encoding #如果文件打开模式为b,则没有该属性 f.flush() #立刻将文件内容从内存刷到硬盘 f.name