
首先,只有一个选项可以在python3中操作文件,即open()
在python2中,有两种方法:file()和open()都可以打开文件,对文件进行操作并具有相似的用法和参数。
但是,这两种文件打开方法之间有本质的区别。文件是文件类型。使用file()打开文件等效于构造文件类型。但是,使用open()打开文件使用python内置函数进行操作,我们通常使用open()打开文件进行操作,并使用file作为类型,例如type(f)是file
句子格式
以open(filename,mode ='r',encoding ='utf-8')作为文件:#使用关键字with和open函数以指定的模式和字符格式打开关键字,并将其分配给变量
带有关键字#的代码将自动执行close()操作,即自动关闭文件以在程序结束时进行保存
open()#是一个打开函数,用于打开文件
文件名#是文件名或文件路径
模式#是打开模式
encoding#指定读取文件的方式PS:打开文本文件时,必须指定字符串的打开方式
作为#also关键字
文件#是变量
有打开文件的模式
(默认为文本模式,t模式):

r,只读模式[默认模式,文件必须存在,如果不存在,则将引发异常]
w,仅写模式[不可读;创建它是否不存在;清除内容(如果存在)
a,附加书写模式[不可读;创建它是否不存在;仅添加内容(如果存在)
PS:对于非文本文件,我们只能使用b模式,“ b”表示以字节为单位进行操作(并且所有文件也都以字节为单位存储,使用此模式不需要考虑文本文件的字符编码,jgp图片文件的格式,视频文件的avi格式)
rb#以字节模式打开只读
wb#以字节模式重写
ab#以字节模式追加
注意:以b模式打开时,读取的内容为字节类型,写入时必须提供字节类型,并且无法指定编码
示例:将open('e.txt',mode ='wb')设置为f:
f.write('Hello \ n'.encode('utf-8')#在此处以b模式写入时,必须将其编码为指定格式并写入磁盘
将指针移动到文件中(即,指定打开或写入时在何处打开或写入)
主动控制文件中指针的移动
seek(参数1,参数2)#如果参数的值为2,则光标将移至指针的末尾。这时,参数1必须指定从末尾读取多少字节,它必须是数字开头,而不是正数
参数1:要移至控件的字节数

参数2:控制参考的位置
0(默认值):指文件的开头
1:参考指针的当前位置
2:指向指针文件的末尾
PS:强调:正常模式下只能使用模式0,模式b只能使用模式1和2
示例:将open('e.txt',mode ='rb')设置为f:
f.seek(6,0)
f.read(3)
f.seek(3,1)
print(f.tell())
print(f.read()。decode('utf-8'))
f.seek(-8,2)
print(f.read()。decode('utf-8'))
f.seek(0,2)
print(f.tell())
了解零件
“ +”表示可以同时读取和写入文件
r +,读写[read and write] #r模式是只读的,不具有擦除或覆盖的功能,因此读写模式是在写入时将内容添加到文件末尾
w +,写和读[可读,可写] #w模式的特点是在写之前先擦除,因此在w +模式下打开时,首先清除文件,然后写入新内容,仅写操作导入模式会添加一个仅限阅读功能
a +,写和读[可读可写] #a模式具有附加特征,并且不会像w模式那样擦除原始内容,因此将读取模式添加到附加模式
x,只写模式[不可读;如果不存在,请创建,如果存在,则报告错误]
x +,写和读[读和写]
一些用于读写文件的操作
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.visible()#文件是否可读
f.writable()#文件是否可读
f.closed#文件是否关闭
f.encoding#如果文件打开方式为b,则没有此类属性
f.flush()#立即将文件内容从内存中刷新到硬盘f.name
关于阅读
1.在文本模式下打开文件时,意味着读取了3个字符。
2.以b模式打开文件时,意味着读取了3个字节
其余文件中的光标移动以字节为单位,例如查找,告诉,截断
PS:Seek具有三种移动方法0、1、2,其中1和2必须以b模式执行,但是无论在哪种模式下,它都以字节为单位移动。
PS:截断是一个截断的文件,因此该文件的打开方法必须是可写的,但不能使用w或w +打开,因为该文件是直接清空的,因此截断应在r +或a或a +中进行测试模式
搜索有三种移动方式
0、1、2,其中1和2必须以b模式执行,但是无论在哪种模式下,它们都以字节为单位移动。
truncate是被截断的文件
因此,打开文件的方法必须是可写的,但不能用w或w +打开,因为直接清除了文件,因此应在r +或a或a +模式下测试截断。
本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/dianqi/article-322232-1.html
要会打仗才行
如今美国不可能再有机会给你
可怜了我父母攒钱攒了一辈子到头来