Python⽂件处理
本⽂给⼤家介绍Python⽂件处理相关知识,具体内容如下所⽰:
1.⽂件的常见操作
⽂件是⽇常编程中常⽤的操作,通常⽤于存储数据或应⽤系统的参数。python提供了os、os.path、shutil等模块处理⽂件,其中包括最常⽤的打开⽂件,读写⽂件,赋值⽂件和删除⽂件等函数。
1.1⽂件的创建
python3.+中移除了python2中的全局file()函数,还保留了open()函数。⽂件的打开或创建可以使⽤函数open()。该函数可以指定处理模式,设置打开的⽂件为只读,只写,可读写状态。open()的声明如下:
open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True)
参数说明:
•参数file是被打开的⽂件名称,如果⽂件file不存在,open()将创建名为name的⽂件,然后再打开该⽂件。
•参数mode是指⽂件的打开模式。⽂件的打开模式请参照以下内容。
•参数buffering是设置缓存模式。0表⽰不缓存,1表⽰缓存;如果⼤于1则表⽰缓冲区的⼤⼩,以字节为单位。
•参数encoding是设置⽂件的字符编码格式。
•open()函数会返回⼀个file对象,file 对象可以对⽂件进⾏各种操作⽂件模式:
'r' open for reading (default)
'w' open for writing, truncating the file first
'x' create a new file and open it for writing
创建⼀个新的⽂件,打开并写⼊
'a' open for writing, appending to the end of the file if it exists
模式打开⽂件以追加
'b' binary mode⼆进制模式打开,可与其他模式⼀起使⽤
't' text mode (default)
'+' open a disk file for updating (reading and writing)
'U' universal newline mode (deprecated)⽀持所有的换⾏符号
注意:图⽚、视频等⽂件必须使⽤b的模式进⾏读写。
message = '''
hello world,\n
hello python,\n
good time.
'''
f = open('','w')
f.write(message)
f.close()
代码说明:
•定义⼀个字符串变量
•以只写模式创建⼀个⽂件并写⼊
•将字符串变量写⼊⽂件
•关闭⽂件
1.2 ⽂件的读取
⽂件的读取有多种⽅法,可以使⽤readline()、readlines()、或read()函数读取⽂件。
1.按⾏读取⽅式readline()
readline()每次读取⽂件的⼀⾏,需要循环读取⽂件。但是当⽂件指针移动到⽂件的末尾是,依然使⽤readline()读取⽂件将出现错误。因此程序中需要添加⼀个判断语句,判断时间指针是否在⽂件的尾部,并且通过该语句中断循环。⽰例如下:
# 使⽤readline模式读取⽂件
writelines()方法将什么写入文件f = open('','r')
while True:
line = f.readline()
if line:
print(line)
else:
break
f.close()
#如果line = f.readline(2)则表⽰每次循环只读取两字节的内容,直到⾏的末尾
2.多⾏读取⽅式readlines()
# 多⾏读取⽂件
f = open('')
lines = f.readlines()
for line in lines:
print(line)
f.close()
3.⼀次性读取⽅式read()
读取⽂件最简单的⽅式就是使⽤read(),read()将⽂件中⼀次性读出所有内容,并赋值给字符串变量,但是当⽂件⽐较⼤的时候不建议使⽤read()的⽅式去读取⽂件,因为⼀次读取⽐较⼤的内容会消耗⼤量的内存,影响系统的性能。⽰例如下:
# ⼀次读取⽂件
f = open('','r')
lines = f.read()
print(lines)
f.close()
⽂件指针:
with open('','rb') as src:
rd = ad(100)
print(rd)
print(src.ll()))
rd = ad(100)
print(rd)
print(src.ll()))
#每次读取100字节,然后返回指针的位置
4.with函数
通常我们使⽤open()打开⼀个⽂件并赋值给⼀个字符串变量来对⽂件进⾏操作,最后还需要进⾏⼿动关闭⽂件,这样写起来有点⿇烦,下⾯我们可以使⽤with函数将⽂件打开与关闭写在⼀⾏函数上。
with open('','r') as src:
da = ad()
print(da)
#只读模式打开⽂件并赋值给src,然后对⽂件进⾏操作即可,代码与使⽤open()来操作⽂件相同。
1.3⽂件的写⼊
⽂件的写⼊有多种⽅法,可以使⽤write(),也可以使⽤writelines()⽅法写⼊⽂件。write()可以将字符串写⼊⽂件,writelines()可以将列表写⼊⽂件。⽰例如下:
m1 = 'hello world'
l1 = ['good','time']
f = open('','w')
f.write(m1)
f.writelines(l1)
f.close()
⽂件的追加:
m1 = 'hello python'
f = open('','a+')
f.write(m1)
f.close()
1.4⽂件的删除
⽂件的删除需要使⽤os模块和os.path模块,os模块提供了系统的环境、⽂件、⽬录等操作系统的函数。对于⽂件来说⽐较常⽤的os模块的函数如下:
•os.access(path,mode)#按照mode指定的权限进⾏访问
•os.chmod(path,mode)#改变⽂件的访问权限,mode⽤UNIX的权限符号表⽰
•os.open(filename,flag[,mode=0777])#按照mode指定的权限打开⽂件。默认情况下,给所有⽤户读、写、执⾏的权限•os.remove(path)#删除path指定的⽂件
•os.rename(old,new)#重命名⽂件或⽬录,old表⽰原⽂件或⽬录,new表⽰新⽂件或⽬录
•os.stat(path)#返回path指定⽂件的所有属性
•os.fstat(path)#返回打开⽂件的所有属性
•os.startfile(filepath[,operation])#启动关联程序打开⽂件。例如,打开⼀个html⽂件,将启动IE浏览器
•os.tmpfile()#创建⼀个临时⽂件,⽂件创建在操作系统的临时⽬录中
注意:os模块的open()函数与内建的open()函数的⽤法不同。
os.path模块常⽤的函数如下:
•os.path.abspath(path)#返回path所在的绝对路径
•os.path.dirpath(path)#返回⽬录的路径
•ists(path)#判断⽂件是否存在
•atime(filename)#返回⽂件的最后访问时间
•ime(filename)#返回⽂件的创建时间
•ime(filename)#返回⽂件最后的修改时间
•size(filename)#返回⽂件的⼤⼩
os.path判断函数
•os.path.isabs(s)#测试路径是否是绝对路径
•os.path.isdir(path)#判断path指定的是否是⽬录
•os.path.isfile(path)#判断path指定的是否是⽂件
•os.path.split(p)#对路径进⾏分割,并以列表的⽅式返回
•os.path.splitext(p)#从路径中分割⽂件的扩展名
•os.path.splitdrive(p)#从路径中分割驱动器的名称
•os.walk(top,func,arg)#遍历⽬录树
⽰例如下:
import os
if ists('../'):
print('is del')
else:
print('no')
1.5⽂件的复制
⽂件的复制有多种⽅法,下⾯我们来看⼀下第⼀种⽐较low的⽅式,就是读写的⽅式进⾏⽂件复制。⽰例如下:
#使⽤read()、write()实现⽂件复制
f1 = open('1.txt','r')
f2 = open('2.txt','w')
f2.ad())
f2.close()
f1.close()
第⼆种⽅法:
shutil模块,shutil模块是另外⼀个⽂件、⽬录的管理接⼝,提供了⼀些⽤于复制、⽬录的函数。copyfile()函数可以实现⽂件的复制,copyfile()函数的声明如下:
•src表⽰源⽂件的路径,src是字符串类型
•dst表⽰⽬标⽂件的路径,dst是字符串类型
•src指向的⽂件复制到dst指向的⽂件
⽰例如下:
import shutil
1.6⽂件的重命名
os模块的函数rename()可以对⽂件或⽬录进⾏重命名。
import os
使⽤shutil中的move()函数也可以实现⽂件重命名的⽬的。
import shutil
修改⽂件的后缀名:
import os
files = os.listdir('.')
for filename in files:
li = os.path.splitext(filename)#返回后⽂件名和后缀名的列表
if li[1] == '.html':
newname = li[0] + '.htm'
glob模块⽤于对路径的匹配,返回符合给定条件的⽂件列表。glob模块的主要函数就是glob(),该函数返回符合同⼀匹配条件的多个⽂件。上⾯的呈现需要判断是否为html后缀,也可以使⽤glob()函数直接匹配⽂件名称。匹配代码如下:
glob.glob('*.html')
glob还可以对路径做更对的匹配。例如,匹配C盘中以w开头的⽬录中所有的⽂本⽂件。
glob.glob('C:\\\w*\\*\\txt')
1.7⽂件的搜索和替换
⽂件内容的搜索和替换可以使⽤字符串的查和替换来实现。例如,在⽂件中查字符串'hello',并统计'hello'出现的次数。代码如下:
python, equal to anything!
以上内容给⼤家介绍了Python⽂件处理相关知识,希望对⼤家有所帮助!
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论