本文给大家介绍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)
参数说明:
"htmlcode">
'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('test.txt','w') f.write(message) f.close()
代码说明:
"htmlcode">
# 使用readline模式读取文件 f = open('test.txt','r') while True: line = f.readline() if line: print(line) else: break f.close() #如果line = f.readline(2)则表示每次循环只读取两字节的内容,直到行的末尾
2.多行读取方式readlines()
# 多行读取文件 f = open('test.txt') lines = f.readlines() for line in lines: print(line) f.close()
3.一次性读取方式read()
读取文件最简单的方式就是使用read(),read()将文件中一次性读出所有内容,并赋值给字符串变量,但是当文件比较大的时候不建议使用read()的方式去读取文件,因为一次读取比较大的内容会消耗大量的内存,影响系统的性能。示例如下:
# 一次读取文件 f = open('test.txt','r') lines = f.read() print(lines) f.close()
文件指针:
with open('test.txt','rb') as src: rd = src.read(100) print(rd) print(src.seek(src.tell())) rd = src.read(100) print(rd) print(src.seek(src.tell())) #每次读取100字节,然后返回指针的位置
4.with函数
通常我们使用open()打开一个文件并赋值给一个字符串变量来对文件进行操作,最后还需要进行手动关闭文件,这样写起来有点麻烦,下面我们可以使用with函数将文件打开与关闭写在一行函数上。
with open('test.txt','r') as src: da = src.read() print(da) #只读模式打开文件并赋值给src,然后对文件进行操作即可,代码与使用open()来操作文件相同。
1.3文件的写入
文件的写入有多种方法,可以使用write(),也可以使用writelines()方法写入文件。write()可以将字符串写入文件,writelines()可以将列表写入文件。示例如下:
m1 = 'hello world' l1 = ['good','time'] f = open('test1.txt','w') f.write(m1) f.writelines(l1) f.close()
文件的追加:
m1 = 'hello python' f = open('test1.txt','a+') f.write(m1) f.close()
1.4文件的删除
文件的删除需要使用os模块和os.path模块,os模块提供了系统的环境、文件、目录等操作系统的函数。 对于文件来说比较常用的os模块的函数如下:
"htmlcode">
import os if os.path.exists('../test.txt'): os.remove('test.txt') print('is del') else: print('no')
1.5文件的复制
文件的复制有多种方法,下面我们来看一下第一种比较low的方式,就是读写的方式进行文件复制。示例如下:
#使用read()、write()实现文件复制 f1 = open('1.txt','r') f2 = open('2.txt','w') f2.write(f1.read()) f2.close() f1.close()
第二种方法:
shutil模块,shutil模块是另外一个文件、目录的管理接口,提供了一些用于复制、目录的函数。copyfile()函数可以实现文件的复制,copyfile()函数的声明如下:
shuil.copyfile(src,dst)
"htmlcode">
import shutil shutil.move('1.txt','2.txt')
1.6文件的重命名
os模块的函数rename()可以对文件或目录进行重命名。
import os os.rename('1.txt','11.txt')
使用shutil中的move()函数也可以实现文件重命名的目的。
import shutil shutil.move('11.txt','1.txt')
修改文件的后缀名:
import os files = os.listdir('.') for filename in files: li = os.path.splitext(filename)#返回后文件名和后缀名的列表 if li[1] == '.html': newname = li[0] + '.htm' os.rename(filename,newname)
glob模块用于对路径的匹配,返回符合给定条件的文件列表。glob模块的主要函数就是glob(),该函数返回符合同一匹配条件的多个文件。上面的呈现需要判断是否为html后缀,也可以使用glob()函数直接匹配文件名称。 匹配代码如下:
glob.glob('*.html')
glob还可以对路径做更对的匹配。例如,匹配C盘中以w开头的目录中所有的文本文件。
glob.glob('C:\\\w*\\*\\txt')
1.7文件的搜索和替换
文件内容的搜索和替换可以使用字符串的查找和替换来实现。例如,在htllo.txt文件中查找字符串'hello',并统计'hello'出现的次数。代码如下:
python, equal to anything!
以上内容给大家介绍了Python文件处理相关知识,希望对大家有所帮助!
python文件处理
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?