本文共 2017 字,大约阅读时间需要 6 分钟。
在Python中,处理文件、目录和路径操作时,os.path模块是常用的工具。然而,pathlib模块作为os.path的替代品,提供了更便捷的API,适合编程习惯的需求。pathlib模块通过对路径进行对象化,使得操作更加直观和高效。
pathlib模块的核心在于6个类,这些类的基类是PurePath,其他5个类都是从它继承而来:
PurePath类适用于不需要与真实文件系统交互的场景:
PurePath('https:', 'www.example.com', 'path') # 返回适配当前系统的路径.(当前路径)。PurePath() == PurePath('.') # TruePurePath('C:/', 'D:/', 'file.txt') # 返回D:\file.txtparts属性返回路径分解后的元组,drive返回驱动器,root返回根路径。anchor返回盘符和根路径,parents返回所有父目录。parent返回上一级目录,name返回文件名,suffix返回文件后缀。as_posix()转换为UNIX路径,as_uri()转换为URL。joinpath()拼接路径,match()判断匹配,relative_to()去除基准路径。with_name()替换文件名,with_suffix()替换后缀。在大多数情况下,Path类是首选。Path继承自PurePath,增加了与文件系统交互的功能:
Path('a/b/c/d') # WindowsPath('a/b/c/d')Path('/etc') # WindowsPath('/etc')Path() # WindowsPath('.')Path.cwd() # 返回当前工作目录Path.home() # 返回用户主目录
Path('d:/test/11').mkdir(exist_ok=True)Path('d:/test/11/22').mkdir(parents=True, exist_ok=True)rmdir()删除空目录。Path('d:/test').iterdir() # 类似os.listdirPath('d:/test').rglob('*') # 类似os.walkPath('d:/test/11/22/test.py').touch()with Path('C:/Users/Administrator/Desktop/text.txt').open('r', encoding='utf-8') as f: print(f.readline())stat()获取文件详细信息。open()、read_bytes()、write_bytes()等方法。is_dir()、is_file()、is_symlink()等。is_absolute()判断是否为绝对路径。/操作符拼接路径。Path('a') / Path('b') # Path('a/b')'b' / Path('a') / 'c' # Path('b/a/c')parts属性返回路径分解结果。glob()和rglob()方法支持通配符。Path('d:/vue_learn').glob('*.html') # 匹配所有HTML文件match()方法支持正则表达式。Path('C:/Users/Administrator/Desktop/text.txt').match('*.txt') # True本文全面介绍了Python pathlib模块的使用方法,涵盖了PurePath类和Path类的核心功能和操作示例。通过这些方法,开发者可以更高效地处理文件、目录和路径操作。
转载地址:http://oxyuz.baihongyu.com/