Python 文件路径对象 Path
2021/8/1 22:06:26
本文主要是介绍Python 文件路径对象 Path,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
Python 文件路径 Path
使用from pathlib import Path 替代 os.path ,
已面向对象的方式进行文件路近操作
打印当前的路径
from pathlib import Path print(Path.cwd())
判断路径是否存在
from pathlib import Path tmp = Path("/Users/aaron/tmp") tmp.exists()
显示文件夹的内容
from pathlib import Path tmp = Path("/Users/aaron/tmp") list(tmp.iterdir())
Path().iterdir 返回的是一个生成器,这在目录内文件特别多的时候可以大大节省内存,提升效率。
os 不支持含有通配符的路径,但 pathlib 可以
list(Path("/tmp").glob("*.txt"))
便捷的读写文件操作
f = Path('test_dir/test.txt')) f.write_text('This is a sentence.') f.read_text()
也可以使用 with 语句
# 读取文件 p = Path('setup.py') with p.open() as f: f.readline()
获取文件的元数据
In [56]: p = Path("/Users/aaron/tmp/c.py") In [57]: p.stat() Out[57]: os.stat_result(st_mode=33188, st_ino=35768389, st_dev=16777221, st_nlink=1, st_uid=501, st_gid=20, st_size=20, st_atime=1620633580, st_mtime=1620633578, st_ctime=1620633578) In [58]: p.parts Out[58]: ('/', 'Users', 'aaron', 'tmp', 'c.py') In [59]: p.parent Out[59]: PosixPath('/Users/aaron/tmp') In [60]: p.resolve() Out[60]: PosixPath('/Users/aaron/tmp/c.py') In [61]: p.exists() Out[61]: True In [62]: p.is_dir() Out[62]: False In [63]: p.is_file() Out[63]: True In [64]: p.owner() Out[64]: 'aaron' In [65]: p.group() Out[65]: 'staff' In [66]: p.name Out[66]: 'c.py' In [67]: p.suffix Out[67]: '.py' In [68]: p.suffixes Out[68]: ['.py'] In [69]: p.stem Out[69]: 'c'
路径的连接 join
很直观的使用一个 /
直接进行连接路径
>>> p = PurePosixPath('foo') >>> p / 'bar' PurePosixPath('foo/bar') >>> p / PurePosixPath('bar') PurePosixPath('foo/bar') >>> 'bar' / p PurePosixPath('bar/foo')
也可以使用 joinpath 方法
>>> PurePosixPath('/etc').joinpath('passwd') PurePosixPath('/etc/passwd') >>> PurePosixPath('/etc').joinpath(PurePosixPath('passwd')) PurePosixPath('/etc/passwd') >>> PurePosixPath('/etc').joinpath('init.d', 'apache2') PurePosixPath('/etc/init.d/apache2') >>> PureWindowsPath('c:').joinpath('/Program Files') PureWindowsPath('c:/Program Files')
路径匹配
>>> PurePath('a/b.py').match('*.py') True >>> PurePath('/a/b/c.py').match('b/*.py') True >>> PurePath('/a/b/c.py').match('a/*.py') False
获取用户目录
from pathlib import Path Path.home() PosixPath('/Users/aaron')
父目录的层级获取
>>> p = PureWindowsPath('c:/foo/bar/setup.py') >>> p.parents[0] PureWindowsPath('c:/foo/bar') >>> p.parents[1] PureWindowsPath('c:/foo') >>> p.parents[2] PureWindowsPath('c:/')
获取多个文件后缀
>>> PurePosixPath('my/library.tar.gar').suffixes ['.tar', '.gar'] >>> PurePosixPath('my/library.tar.gz').suffixes ['.tar', '.gz'] >>> PurePosixPath('my/library').suffixes []
Windows 风格转 Posix
>>> p = PureWindowsPath('c:\\windows') >>> str(p) 'c:\\windows' >>> p.as_posix() 'c:/windows'
获取文件的 uri
>>> p = PurePosixPath('/etc/passwd') >>> p.as_uri() 'file:///etc/passwd' >>> p = PureWindowsPath('c:/Windows') >>> p.as_uri() 'file:///c:/Windows'
判断是否绝对路径
>>> PurePosixPath('/a/b').is_absolute() True >>> PurePosixPath('a/b').is_absolute() False >>> PureWindowsPath('c:/a/b').is_absolute() True >>> PureWindowsPath('/a/b').is_absolute() False >>> PureWindowsPath('c:').is_absolute() False >>> PureWindowsPath('//some/share').is_absolute() True
文件名若有变化
>>> p = PureWindowsPath('c:/Downloads/pathlib.tar.gz') >>> p.with_name('setup.py') PureWindowsPath('c:/Downloads/setup.py')
这篇关于Python 文件路径对象 Path的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-25Python编程基础:变量与类型
- 2024-11-25Python编程基础与实践
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器