简介:今天,首席CTO注释要与您分享多少python查看文件与文件相关的行。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
我在公司中编写了相同的过程。我的方法是首先使用OS.Walk遍历所有文件,并在列表中获取两个文件夹的所有文件名。然后比较两个列表元素,然后比较每个文件。如果LZ是一个女孩,欢迎添加我的QQ讨论,那个男人将根据我的想法写作。
文件存储方法
在计算机中,该文件是文本文件和以二进制方式存储在磁盘上的二进制文件
文本文件可以使用文本编辑软件来查看本质上是二进制文件
二进制文件的内容未直接读取,但是文件编辑软件无法使用用于其软件的二进制文件来查看它。
文件基本操作
在计算机中运行总共需要三个步骤:1。打开文件2.读取和写文件
将文件的内容读取到内容的内容中,然后将内存内容写入文件
模式描述
t文本模式(默认)。
X写作模式,一个新文件,如果文件已经存在,将报告错误。
B二进制模式。
+打开一个文件以进行更新(可读和书面)。
U通常交换模式(不建议)。
r以读取方式打开文件。文件的指针将放置在文件开头。这是默认模式。
RB以二进制格式打开文件以供仅读取。文件指针将放置在文件开头。这是默认模式。用于非文本文件(例如图片)的类别使用。
R+打开一个用于读取和写作的文件。文件指针将放置在文件的开头。
RB+以二进制格式打开文件,用于读取和写作。文件指针将放置在文件的开头。用于非文本文件(例如图片)的类别。
w打开一个文件,仅用于编写。如果文件已经存在,则从一开始就打开和编辑文件,即将删除原始内容。如果不存在文件,请创建一个新文件。
WB以二进制格式打开文件,仅用于编写。如果文件已经存在,则从一开始就打开和编辑文件,也就是说,原始内容将被删除。如果文件不存在,请创建一个新文件。用于非文本文件(例如图片)。
W+打开一个用于读取和写作的文件。如果文件已经存在,则从一开始就打开和编辑文件,即,将删除原始内容。如果不存在文件,请创建一个新文件。
WB+以二进制格式打开文件以读取和写作。如果文件已经存在,则从一开始就打开和编辑文件,也就是说,原始内容将被删除。如果不存在文件,请创建一个新的新内容file.generally用于非文本文件,例如图片。
a打开一个要添加的文件。如果文件已经存在,则文件指针将放置在文件的末尾。换句话说,新内容将在现有内容之后编写。如果文件不存在新文件编写。
AB以二进制格式打开文件以添加。如果文件已经存在,则文件指针将放置在文件末尾。存在,创建一个新文件供书写。
A+打开一个用于读取和写作的文件。如果文件已经存在,则文件指针将放置在文件末尾。打开文件后,将是一个附加模式。如果不存在文件,请创建一个用于阅读和写作的新文件。
AB+以二进制格式打开文件以添加。如果文件已经存在,则将文件指针放置在文件末尾。如果文件不存在,请创建一个新的文件供读取和写作。
有许多文件打开模式,但是实际上只有六种类型。
让我们总结以下六种类型的主要用途
该模式可以用作操作。如果文件不涵盖文件的原始内容
R仅读取错误 - -
R+可读,书面错误是
w唯一的创造是
W+可读,可以创建写作
A仅编写或不写,添加写作
A+可读,可以创建写作,添加写作
仅读取打开文件的模式 - 仅阅读(r)
如果文件中没有错误:
读写模式打开文件 - 阅读和写入模式(R+)
在编写数据之前:
写入数据后:
将替换相同的长度内容
如果文件中没有错误:
写入模式打开文件写入模式(W)
在编写数据之前:
写入数据后:
此操作将删除原始文件内容,并将其重写为Python。
并将光标放在文件的开头。
如果文件不存在,系统将创建文件夹并将其重写为内容
读写模式打开文件 - 阅读和写入模式(W+)
在编写数据之前:
写入数据后:
此操作将删除原始文件内容,并将其重写为Python。
并将光标放在文件的开头。
如果文件不存在,系统将创建文件夹并将其重写为内容
通过此原理,也可以使用文件编写模式(W),读写模式(W+)来删除文件内容。
因为他们的整个工作原理是删除文件的原始内容并编写新内容。
如果我们写的内容为空,则不是删除文件内容。
在编写数据之前:
写入数据后:
写入模式打开文件(添加内容) - 写入模式(a)
在编写数据之前:
写入数据后:
可以看出,根据原始内容,在文章末尾添加了新内容!
如果文件不存在,系统将创建一个新文件夹并编写内容
读取和写作模式打开文件(添加内容) - 阅读和写作模式(a)
在编写数据之前:
写入数据后:
可以看出,根据原始内容,在文章末尾添加了新内容!
如果文件不存在,系统将创建一个新文件夹并编写内容
二进制模式打开文件
我们已经在文件打开模式下看到了以下模式:rb,wb ...与B一起。
这意味着什么?
以二进制方式打开文件。
显然,我们有以下错误:
主要原因是编码问题可能是因为字节0x82在GBK编码中没有此字符。
也许原始字符是两个字节,它们被解析为GBK中的字节,导致字符不存在。
这就是为什么我们需要使用二进制阅读的原因。
文件操作
打开功能负责打开文件,并返回文件对象
读 /写 /关闭需要通过文件对象调用三种方法
文件和文件夹的操作
在python中的钢琴和文件夹的操作中,应使用OS模块的操作。
具体步骤如下:
指南OS模块
制作?OS模块相关功能
1.文件重命名
2.删除文件
3.创建一个文件夹
4.删除文件夹
5.获取当前目录
6.更改默认目录
7.获取目录列表
使用“打开功能”一一读取文件,然后按顺序比较它们。如果包含所需的字符串,则累积了数字1。在阅读后,可以计算旅行的数量。代码如下:
n = 0
对于打开的行('filename','r'):
如果在“固定字符串”中,则行:
n+= 1
打印(n)
阐明:
在开放方法中使用线可以提高代码效率。如果需要更复杂的统计信息,例如重复,您可以使用哈希功能将哈希值存储在列表中,然后进行统计信息。
打开(文件名[,模式,encoding =“ code”]:第一个参数文件名是在py file目录中,如果它不添加路径(路径:e:/xxx或e:\ xxx),第二个是第二个参数。模式,默认值是'r' - 仅阅读,例如:f = open('e: /abc.txt'),如果要刻画代码并编写模式:
f = open('e: /abc.txt','w',encoding ='utf-8')
1.模式
2.方法
(1)关闭():关闭文件,因为文件在编写内存时写在内存中,并且仅在关闭时,硬盘才写成,因此请记住在编写后将其关闭
(2)读(size = -1):读取文件大小字符,请勿写入默认值为-1,此时读取所有内容(更改行
它表明它不好 - 看起来)并作为字符串返回。阅读后,请确保注意文件指针,因此下次使用读取方法时,您会发现无法阅读内容,因此您需要使用Seek使用Seek.Move。文件重新定义
(3)tell():返回到当前文件指针指向的位置
(4)seek(偏移,从):移动文件指针,表示从源来代表字节的偏移,从源头源来自源来自参数,0代表起始位置,1表示当前位置,2表示末端文件末尾的文件
(5)readline():根据序列读取内容行,默认
作为边界
(6)write():编写内容,但是您必须具有写入权限,否则将报告错误,并且写作的长度将在写作后返回。3
(7)truncate():删除内容,将来删除当前指针之后的内容,例如:
笔记:
1.文件也可以转换为列表,例如:list1 = list(f),此时
如果您分开,则可以在for语句中读取文件的所有内容。例如:
2.上面输出文件的内容方法相对效率低下,因此通常用于输出整个文件,例如:
通过FILENO函数,我们可以查看与文件相对应的文件的文件描述符,例如:
可以看出,python将在启动时启动标准流文件(文件描述符为:0/1/2),因此以后打开的文件将从3中增加。,以后打开的文件可以继续使用序列号的文件描述符
Python中印刷品的本质是通过sys.stdout输出内容,而sys.stdout的本质是“文件”,它等同于我们所有输入和输出的本质。例如:
打开的函数不仅可以打开本地文件,还可以打开文件描述符,并且参数默认为true,该文件代表关闭后的相应文件资源。对于某些文件描述符,我们只想在关闭时打开文件描述符,将打开文件描述符符号,而无需发布相应的文件资源即可释放对象,然后您可以设置CloseFD = false以举例说明:
您需要使用Chardet模块,根据二进制可读性打开文件,然后通过dentect()方法查看它。例如:
因此,您可以根据文件设置编码:
有时,文件的编码和解码也可能发生。例如,当两个代码混合在同一文件中时,您可以设置目前忽略的错误参数以避免此问题。例子:
您可以在OS模块下使用CHMOD()函数,以进行特定参考:
使用OS模块下的Remove()函数来实现删除文件,例如:
您可以使用自己的Zipfile模块进行操作。例如:
您可以使用自己的Tarfile模块进行操作,例如:
您可以参考以下代码:
f = file(youpath)
对于F中的行
t = line.split(“ ==”)
part_1 = t [0] +“ ==”
(part_2,part_3)= t [1] .split(“ - ”)
del t
打印“端口1:%s第2:%s第3节:%s”%(part_1,part_2,part_3)
扩展信息:
Python参考函数
cally(obj)查看是否可以像函数一样称呼obj
reper(obj)获取OBJ的代表字符串,您可以使用此字符串评估来重建对象的副本
eval_r(str)代表合法的python表达式并返回此表达式
hasattr(obj,name)查看obj的名称空间中是否有名称
setattr(obj,name,value)是obj到vale的名称空间中的名称
参考信息来源:百度百科全书
保存在各种变量中的数据是暂时的,随着程序的运行,它将丢失。要实现数据的长期效果,有必要在磁盘中建立文件并将数据输入到文件中并保存它当您需要获取数据时,请阅读文件。
我们已经建立的程序都是应用程序。本质上,应用程序无法直接操作计算机的硬件。例如,磁盘读取中的文件,该文件需要操作系统中的相应命令。next,python build -in infunp open()和write()我们使用的所有函数都通过操作系统的相关命令来实现。至于细节,我们不需要考虑它。
15.1创建和打开文件
在Python中创建或打开文件实际上是一个对象,通过调用构建-in open()函数来创建或打开文件。
语法:
文件对象= open(fileName [,模式] [,缓冲])
参数描述如下:
文件名:file_name变量是一个字符串值,包含要访问的文件名;
模式:模式确定打开文件的模式:仅读,写,添加等。请参阅以下所有值的完整列表。此参数是非compulsory。默认文件访问模式仅读取(R)。
缓冲:如果缓冲的值将设置为0,则不会有存款;如果采用缓冲的值1,则在访问文件时将存储存储线;缓冲区大小;如果获取负值,则存储区域的缓冲区大小为系统默认值。
模式参数的参数值和指令
r,r+,w,w+,a,a+r,r+,w,w,w+,a,a+的差异如下所示。特别注意指针的位置:
让我们以一个例子来解释Open()函数的用法。
示例1:
file = open('1.py')
如果存在“ 1.py”文件,则可以打开此文件;如果文件“ 1.py”不存在,则将显示以下提示:
Trackback(最近的最新电话):
文件“”,第1行,在
file = open('1.py')
FILENOTFOUNDERROR:[ERRNO 2]没有这样的文件或目录:'1.Py'
示例2:
file = open('4. 4.py','a+')
尽管文件“ 4.Py”不存在,但操作中没有错误。请参阅上表,“ A+”的含义是在读写模式下打开文件。如果文件已经存在,则将以其他方式编写新内容;如果文件不存在,新文件用于编写。在文件夹上,我发现已生成了4.py的新文件。
示例3:
file = open('python.png','rb')
打印(文件)
操作结果:
也就是说,尽管Python可以打开图片格式的文件,但print()未输出它,也需要第三部分库中模块的相应方法来处理,例如open()f方法在PIL。
示例4:
file = open(“ f.txt”,“ w”,encoding ='utf-8')
#f.txt,编码方法是UTF-8
打印(“文件名:”,file.name)#输出文件名
打印
打印(“访问模式:”,file.mode)#文件访问模式
操作结果:
文件名:f.txt
它是否已关闭:错误
访问模式:W
示例5:
15.2关闭文件
使用文件后,应及时将其关闭,以避免不必要的损坏。同时,也可以发布内存。使用Python中的Close()方法关闭文件。
语法格式:
file.close()
其中,文件是一个文件对象。
15.3带有声明
使用语句适合访问资源,以确保将执行必要的“清洁”操作,而不管在使用过程中是否发生异常,例如在文件使用后自动关闭,自动获取和线程中锁定的锁定。
带有陈述的语法格式如下:
以表达为目标:
与身体
其中,表达式用于指定表达式,例如打开文件的open()函数。标题用于指定变量并将表达式保存到变量中,例如文件对象文件。指定使用语句主体,例如相关的文件操作语句,如果没有语句要执行,请改用Pass语句。
假设Python Current目录中有一个test.txt文件,则内容如下:
Python是一种解释语言:这意味着开发过程中没有汇编。类似于PHP和PERL语言。
Python是一种交互式语言:这意味着您可以在Python提示后直接执行代码。
Python是一种面向对象的语言:这意味着Python支持编程技术中封装的面向对象的样式或代码。
Python是初学者的语言:Python是主要程序员的好语言,它支持广泛的应用程序开发。
例如,如下:
使用open('test.txt','r',encoding ='utf-8')作为文件:
line = file.readline()#readline()方法可以读取文件的文件,接下来将提及。
打印(线)
运行结果如下:
Python是一种解释语言:这意味着开发过程中没有汇编。类似于PHP和PERL语言。
目前,我们添加了读取文件以外的读取文件的声明,并带有语句。代码如下:
使用open('test.txt','r',encoding ='utf-8')作为文件:
line = file.readline()
打印(线)
line2 = file.readline()
打印(Line2)
发现以下错误提示:
Trackback(最近的最新电话):
文件“ c:c:/users/zym/appdata/local/programs/python/python39/3.py”,第5行,IN
line2 = file.readline()
ValueError:I/操作在封闭文件上。
这意味着要读取的文件已关闭。
可以看出,当使用语句运行时,打开test.txt文件会自动关闭。
15.4读取文件
python中读取文件的方法是:
1.阅读指定数字的字符
格式如下:
file.read([[size])
其中,文件是一个打开的文件对象。大小是一个可选参数,可以指定要读取的字符数。
调用read()方法的内容时,必须在r(仅读取)或r+(读写)中打开文件。
喜欢:
使用open('test.txt','r',encoding ='utf-8')作为文件:
txt = file.read()(或txt = file.read(10))
打印(TXT)
将读取读取和输出test的整个内容(或前10个字符)。TXT文件将读取。
2.手机文件的指针
对于新打开的文件,文件指针总是指向文件标头。您还可以通过Seek()方法将文件移至新位置。
格式如下:
file.seek(Office [,Wher])
其中,文件表示已打开的文件对象;偏移用于指定移动的字符数。当计算位置的启动计算数时,该值是从文件标头计算的,值为1表示从当前位置计算的当前位置,值2表示它是从该值开始的文件,默认值为0。
例如:
使用open('test.txt','r',encoding ='utf-8')作为文件:
字符串= file.read(9)
打印('取9个字符:'+字符串)
file.seek(2)#pointer开始从文件标头移动2个字符
string = file.read(9)#从当前位置读取10个字符
输出结果:
采用9个字符:
Python是一种
采用9个字符:
THON是一个解释
以下代码将被抛弃:
使用open('test.txt','r',encoding ='utf-8')作为文件:
file.seek(2,1)#pointer开始从当前位置移动2个字符
string = file.read(10)#从当前位置读取10个字符
打印('取10个字符:'+字符串)
错误提示是:
Trackback(最近的最新电话):
文件“ c:userszymappdatalocalprogramspython393.py”,第7行,
file.seek(2,1)#pointer开始从当前位置移动2个字符
io.unsupportedeperation:不能做无关的寻求者
原因是必须使用B模式(即RB)打开文件才能使用Where参数。TXT,为了通过更改指针读数来解决任何位置字符的使用,您可以使用添加位置变量的方法来存储指针的值。
例如:
使用open('test.txt','r',encoding ='utf-8')作为文件:
#UTF-8中文字符和英语字符占据角色
字符串=''#set一个空字符串
指针= 0#当前指针为0
str1 = file.read(6)#read 6个字符
指针+= 6 #pointer变量移动6个字符
字符串+= str1 #String用于存储可读字符
打印('拿6个字符:',str1)
file.seek(指针)#pointer开始从文件标头移动2个字符
str1 = file.read(8)#从当前位置读取10个字符
指针+= 8 #poor跳过
字符串+= str1
打印('再带8个字符:',str1)
打印('所有读取字符:',字符串)
打印(“当前指针位于:”,指针)
str1 = file.read(1)
打印('当前指针所在的角色:',str1)
运行结果如下:
采用6个字符:
Python
再加8个字符:
这是一种解释语言
所有读字符:
Python是一种解释语言
当前指针所在的位置:
14
当前指针中的字符:
这
3.读取数据readline()方法行
语法格式:
file.readline()
例子:
使用open('test.txt','r',encoding ='utf-8')作为f:
字符串= f.read(1)#读取文件的第一个字符
如果字符串!='':#防止文件是空文件
lineno = 0
而真:
线= f.Readline()
如果行!='':
lineno+= 1
打印('No.+str(lineno)+'line:'+line,end ='')
#因为每行都有自己的分支,因此不允许更改print()语句
别的:
休息#在有空线时停止阅读
别的:
打印(“要读的文件是空文件!”)
操作结果:
第1行:观察是一种解释语言:这意味着开发过程中没有汇编。类似于PHP和PERL语言。
第2行:Python是一种交互式语言:这意味着您可以在Python提示后直接执行代码。
第3行:Python是一种面向对象的语言:这意味着Python支持对象编程技术中封装的面向对象的样式或代码。
第4行:Python是初学者的语言:Python是主要程序员的好语言,它支持广泛的应用程序开发。
4.读取所有命令()方法
语法格式:
file.readlines()
此方法与read()方法相同。调用read()方法的内容时,必须在R(仅读取)或R+(读写)中打开文件。
例子:
使用open('test.txt','r',encoding ='utf-8')作为f:
txt = f.readlines()
打印(TXT)
操作结果:
['Python是一种解释语言:这意味着在开发过程中没有此链接的汇编。类似于PHP和PERL语言。”,“ Python是一种交互式语言:这意味着您可以在后面直接执行代码python提示。发展。']
从上面的结果可以看出,readlines()方法的返回值是字符串列表。因此,您还可以输出列表元素。如下:
使用open('test.txt','r',encoding ='utf-8')作为f:
txt = f.readlines()
对于txt中的行:
打印(线,end ='')
操作结果:
Python是一种解释语言:这意味着开发过程中没有汇编。类似于PHP和PERL语言。
Python是一种交互式语言:这意味着您可以在Python提示后直接执行代码。
Python是一种面向对象的语言:这意味着Python支持编程技术中封装的面向对象的样式或代码。
Python是初学者的语言:Python是主要程序员的好语言,它支持广泛的应用程序开发。
15.5写文件的内容
语法格式如下:
file.write(字符串)
其中,文件是一个打开的文件对象,字符串是要编写的字符串。
编写文件内容时,必须以W(可以编写)或(添加)模式打开文件。否则,将抛出以下异常提醒:
Trackback(最近的最新电话):
文件“ c:userAdministratoPdalopDalocalprogramspythonpython383.py”,第2行,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in,in
F.Write(“生命很短,我使用python!”)
io.unsupportedipation:不写
写入()方法的用法如下:
使用open('test.txt','a',encoding ='utf-8')作为f:
F.Write(“生命很短,我使用python!”)
使用open('test.txt','r',encoding ='utf-8')作为f:
txt = f.read()
打印(TXT)
操作结果:
Python是一种解释语言:这意味着开发过程中没有汇编。类似于PHP和PERL语言。
Python是一种交互式语言:这意味着您可以在Python提示后直接执行代码。
Python是一种面向对象的语言:这意味着Python支持编程技术中封装的面向对象的样式或代码。
Python是初学者的语言:Python是主要程序员的好语言,它支持广泛的应用程序开发。
生活很短,我用python!
可以看出,由于文件打开方法是一种模式(附加模式),因此书面内容写入文件末尾。
在Python中,没有类似于文件操作方法中的计算长度,搜索,替换,拦截,分离等的方法。为什么不呢?原因可能是文件的类型太复杂了,例如二进制文件,上述操作并不重要。如果您只需要执行上述文本文件的操作,则可以读取文件的内容首先进入字符串,然后使用相应的字符串函数或方法进行操作。例如,将test.txt文件中的字符串“ python”替换为“ php”,您可以使用以下代码:
txt1 =''
使用open('test.txt','r',encoding ='utf-8')作为f:
txt1 = f.read()#first存储文件内容在字符串txt1中
txt2 = txt1.replace('python','php')###replace t txt1中的'python'to'php',然后存储在txt2中
使用open('test.txt','w',encoding ='utf-8')作为f:
f.write(txt2)#write字符串txt2的内容回到文件
在这里分两个步骤打开文件的原因(第一次是R模式,第二次是W模式),而无需使用读取和写作(R+,W+方法),因为它相对容易犯错误实践证明,将文件的读取操作和写作操作分开实际上是一个非常正确的选择。
结论:以上是首席CTO注释引入的Python查看文件的全部内容。我希望这对每个人都会有所帮助。如果您仍然想了解有关此信息的更多信息,请记住收集并关注此网站。