生命苦短,我用Python。
众所周知,Python除了不能生孩子,啥都能干。
在日常工作中,处理一些文件,用Python往往只需几行代码就可以搞定。批量读取文件,修改文件。给文件夹、文件统一格式重命名等。都可用Python一键搞定。
本篇博客汇总了一些比较常用的Python文本操作,若有缺漏,欢迎评论告知。
若本文对你有所帮助,那点赞、关注、收藏就动手点一点呗
文件的读写
open()方法
用open()方法可以对文本进行读写操作,它会返回一个File对象,调用的时候,一般需要传入两个参数
- file:名文件(绝对路径或者相对路径都行)。
- mode:访问的模式。常用的有
- w:写入模式,如果文件不存在则会创建一个,若存在,删掉原有内容。从头开始编辑。
- w+:读写模式。如果文件不存在则会创建一个,若存在,删掉原有内容。从头开始编辑。
- r:只读模式。从文件头开始读取文件。
- a:追加模式。若文件已存在,则从文件尾开始编辑,若不存在,则创建一个。
- a+:读写模式。若文件已存在,则从文件尾开始编辑,若不存在,则创建一个。
- 若需要读取二进制文件或者用二进制的方式写入文件。则在上述模式后面加一个’b’。例如:wb,wb+,rb,ab,ab+。
若打开的文件中存在中文,那可能会出现乱码情况。这时候就得用到第三个参数,指定文件打开的编码格式
- encoding:根据文件的编码进行填写。
获取一个文件对象
file=open('filename','r')
这样我们就获得了一个文件对象。那么如果要获取文件中的内容,可以用for循环来读取每一行
for line in file:
print(line)
若要读取指定数量的字符,可以使用read()方法
chars=file.read(20) # 从文件读取指定的字节数,如果未给定或为负则读取所有。
设置文件指针的位置,可以用seek()方法
- offset:偏移量,需要便宜多少字节
- whence:默认值为0。表示offset从什么地方开始偏移。
file.seek(0,0)
写入文件,可以用write()方法
s="jiangxiaoju"
file.write(s)
若想同时写入多个字符串的话,可以用writelines。
strs=['aaaa\n','bbbb']
file.writelines(strs) # 若需要换行,则需要在字符串后面加上换行符
文件/目录操作
文件操作也是一个很强大的功能。Python提供了非常多的方法,几乎涵盖了所有可能的操作。博主这里就列举几个常用到的,具体可以参考这里列举的方法。Python OS 文件/目录方法
对于文件的操作,都在os
这个包里面。
首先导入os这个包
import os
权限判断
确认是否有某些操作权限,不过对于Windows用户一般是不要考虑的。只有Linux这种多用户系统才需要判断是否有某些权限。os.access(path,mode)
。
- path:需要判断权限的路径。
- mode:有四种参数
os.F_OK
判断path是否存在。os.R_OK
判断是否可读。os.W_OK
判断是否可写。os.X_OK
判断是否可执行。
切换工作目录、返回当前工作目录
这个操作跟dos命令很像
os.chdir(path)# path 就是要切换的新路径
os.getcwd()
创建文件夹
用os.mkdir()
创建文件夹,需要两个参数
- path:创建的目录或者文件夹名
- mode:设置的权限数字模式。默认为0777(八进制)
os.mkdir('/tmp/test') #以Linux系统上为例。
重命名文件或目录
用os.rename()
。需要两个参数
- src:要修改的目录名
- dst:修改后的目录名
os.rename('test','test2')
获取指定文件夹下的所有文件或者文件夹名
用os.listdir()
方法
dirs=os.listdir('./')
for file in dirs:
print(file)
os.path()模块
该模块用于获取文件的属性。
获取绝对路径
os.path.abspath(path)
判断路径是否存在
os.path.exists(path)
获取文件名
os.path.basename(path)
判断是否为文件
os.path.isfile(path)
判断是否为目录
os.path.isdir(path)
路径拼接
将目录和文件名合成一个目录
os.path.join('/test','a.txt')
为列举的方法可以参考这里Python os.path() 模块