pathlib
模块使用面向对象的模式实现了文件与文件夹的列出与操作。
与基于字符串的方式(如 glob
或 os.path
)更容易理解与使用。
pathlib
模块使用函数 glob
与 rglob
进行文件遍历,其中 rglob
使用嵌套方式。
from pathlib import Path
inws = Path('.')
for entity in inws.glob('*.txt'):
print(entity)
xx_hello2.txt xx_text.txt 112233.txt 123.txt dst.txt xx_hello.txt txt_path.txt new_demo.txt
for entity in inws.rglob('*.txt'):
print(entity)
xx_hello2.txt xx_text.txt 112233.txt 123.txt dst.txt xx_hello.txt txt_path.txt new_demo.txt new/hello1.txt new/hello2.txt .ipynb_checkpoints/xx_hello-checkpoint.txt archive/new_demo.txt archive/new.txt
for entity in inws.glob('*'):
print(entity)
xsec06_practice2.ipynb xx_hello2.txt xx_111113.zip xx_your.tar xx_text.txt 112233.txt 123.txt 555.jpg dst.txt image310.jpg new.zip pro_gen_tmp_files.ipynb xx_hello.txt 11.jpg txt_path.txt new .ipynb_checkpoints archive new_demo.txt chapter_文件操作_ch9461.ipynb sec01_Python-中-pathlib-模块的使用_jta0b3.ipynb sec02_文件与路径处理_jt9aeb.ipynb sec03_如何使用-os-模块遍历目录树_jta82c.ipynb sec04_Python-中shutil模块的使用_jtf947.ipynb sec05_Python-中的-glob-模块_jtf359.ipynb sec06_利用-zipfile-模块压缩文件_jt41fd.ipynb sec07_项目将带有美国风格日期的文件改名为欧洲风格日期_jt6f4b.ipynb sec08_项目将一个文件夹备份到一个-ZIP-文件_jtce86.ipynb sec09_如何使用-Python-libarchive-c-模块_jt97f4.ipynb sec10_计算机文件系统.ipynb sec11_Python-中的-pathlib-模块.ipynb sec12_案例删除垃圾文件_file.ipynb sec13_Python调用操作系统工具.ipynb sec14_Python-处理文件与文件夹.ipynb sec15_使用-shutil-模块处理文件.ipynb sec16_压缩文件处理.ipynb sec17_案例压缩文件夹中某类型文件_files.ipynb
for entity in inws.iterdir():
print(entity)
xsec06_practice2.ipynb xx_hello2.txt xx_111113.zip xx_your.tar xx_text.txt 112233.txt 123.txt 555.jpg dst.txt image310.jpg new.zip pro_gen_tmp_files.ipynb xx_hello.txt 11.jpg txt_path.txt new .ipynb_checkpoints archive new_demo.txt chapter_文件操作_ch9461.ipynb sec01_Python-中-pathlib-模块的使用_jta0b3.ipynb sec02_文件与路径处理_jt9aeb.ipynb sec03_如何使用-os-模块遍历目录树_jta82c.ipynb sec04_Python-中shutil模块的使用_jtf947.ipynb sec05_Python-中的-glob-模块_jtf359.ipynb sec06_利用-zipfile-模块压缩文件_jt41fd.ipynb sec07_项目将带有美国风格日期的文件改名为欧洲风格日期_jt6f4b.ipynb sec08_项目将一个文件夹备份到一个-ZIP-文件_jtce86.ipynb sec09_如何使用-Python-libarchive-c-模块_jt97f4.ipynb sec10_计算机文件系统.ipynb sec11_Python-中的-pathlib-模块.ipynb sec12_案例删除垃圾文件_file.ipynb sec13_Python调用操作系统工具.ipynb sec14_Python-处理文件与文件夹.ipynb sec15_使用-shutil-模块处理文件.ipynb sec16_压缩文件处理.ipynb sec17_案例压缩文件夹中某类型文件_files.ipynb
for entity in inws.rglob('**'):
print(entity)
. new .ipynb_checkpoints archive archive/.ipynb_checkpoints
for entity in inws.rglob('*.txt'):
print(entity)
print(entity.stat().st_ctime)
print(entity.stat().st_mtime)
xx_hello2.txt 1744078484.4333355 1744078484.4333355 xx_text.txt 1744078484.4343355 1744078484.4343355 112233.txt 1744078484.4343355 1744078484.4343355 123.txt 1744078484.4343355 1744078484.4343355 dst.txt 1744078484.4343355 1744078484.4343355 xx_hello.txt 1744078484.4343355 1744078484.4343355 txt_path.txt 1744078484.4343355 1744078484.4343355 new_demo.txt 1744078484.4486902 1744078484.4486902 new/hello1.txt 1744078484.4356458 1744078484.4356458 new/hello2.txt 1744078484.4356458 1744078484.4356458 .ipynb_checkpoints/xx_hello-checkpoint.txt 1744078484.4383357 1744078484.4383357 archive/new_demo.txt 1744078484.4486902 1744078484.4486902 archive/new.txt 1744078484.4486902 1744078484.4486902
Python 的 pathlib
模块提供面向对象的文件系统路径操作,通过 Path
类替代传统的 os.path
字符串处理。
支持跨平台路径拼接(使用 / 运算符)、文件检测(exists()/is_file()
)、内容读写(read_text()/write_text()
)等操作,
简化了路径解析、文件遍历(glob()
)、属性获取(stem/suffix
)等常见任务。
其链式调用风格(如 Path('dir').joinpath('file.txt').resolve()
)使代码更简洁,
且自动处理操作系统差异,适合现代Python项目中的路径管理需求,是替代 os.path
的推荐方案。