人们每天都在这个世界上使用它 Python 完成不同的工作。文件操作是最常见的任务之一。使用 Python,您可以很容易地为他人生成精美的报告,也可以快速分析和整理成千上万的数据文件。本文推荐了一个被低估的报告 Python 标准库模块pathlibibliblib 模块。
一、pathlib 模块介绍
为了使文件处理更容易,Python 在 3.4 版本引入了一个新的标准库模块:pathlib。
pathlib 基于面向对象的思想设计,模块包装了许多与文件操作相关的功能。
如果用它来重写上面的代码,结果会大不相同。
pathlib模块在python中的用法
1、使用 pathlib 模块重写代码
原代码:
importos.path defunify_ext_with_os_path(path): """统一目录下.txt文件名后缀为.csv """ forfilenameinos.listdir(path): basename,ext=os.path.splitext(filename) ifext=='.txt': abs_filepath=os.path.join(path,filename) os.rename(abs_filepath,os.path.join(path,f'{basename}.csv'))
使用 pathlib 模块后的代码:
frompathlibimportPath defunify_ext_with_pathlib(path): forfpathinPath(path).glob('*.txt'): fpath.rename(fpath.with_suffix('.csv'))
与旧代码相比,新函数只需要两行代码就能完成工作。
2、使用/
运算符合组合文件路径
#老朋友:使用os.path模块 >>>importos.path >>>os.path.join('/tmp','foo.txt') '/tmp/foo.txt' #新潮流:使用/操作符 >>>frompathlibimportPath >>>Path('/tmp')/'foo.txt' PosixPath('/tmp/foo.txt')
3、使用.read_text()
快速阅读文件内容
#标准做法,使用withopen(...)打开文件 >>>withopen('foo.txt')asfile: ...print(file.read()) ... foo #使用pathlib可以使这件事变得更简单 >>>frompathlibimportPath >>>print(Path('foo.txt').read_text()) foo
4、在Pathlib中使用path 对象与只接受字符串路径的标准库函数兼容
>>>p=Path('/tmp') #Path类型对象p可以直接join >>>os.path.join(p,'foo.txt') '/tmp/foo.txt'
以上是pathlib模块的用法很多,都很好用。快用~