>>> from env_helper import info; info()
页面更新时间: 2024-03-29 16:03:45
运行环境:
    Linux发行版本: Debian GNU/Linux 12 (bookworm)
    操作系统内核: Linux-6.1.0-18-amd64-x86_64-with-glibc2.36
    Python版本: 3.11.2

3.1. 使用 pathlib 模块

pathlib 模块使用面向对象的模式实现了文件与文件夹的列出与操作。 与基于字符串的方式(如 globos.path )更容易理解与使用。

pathlib 模块使用函数 globrglob 进行文件遍历,其中 rglob 使用嵌套方式。

>>> from pathlib import Path

3.1.1. 遍历目录

>>> inws = Path('.')
>>> for entity in inws.glob('*.txt'):
>>>     print(entity)
xx_text.txt
>>> for entity in inws.rglob('*.txt'):
>>>     print(entity)
xx_text.txt
new/hello1.txt
new/hello2.txt
xx_out/new/hello1.txt
xx_out/new/hello2.txt
>>> for entity in inws.glob('*'):
>>>     print(entity)
xx_new2.zip
sec09_libarchive.ipynb
xx_test.tar.gz
sec08_practice1.ipynb
sec07_renam.ipynb
sec03_shutil.ipynb
sec02_walktree.ipynb
new.zip
new
sec06_zipfile.ipynb
xx_out
sec01_pathlib.ipynb
xx_text.txt
xsec06_practice2.ipynb
.ipynb_checkpoints
sec04-glob.ipynb
chapter.ipynb
>>> for entity in inws.iterdir():
>>>     print(entity)
xx_new2.zip
sec09_libarchive.ipynb
xx_test.tar.gz
sec08_practice1.ipynb
sec07_renam.ipynb
sec03_shutil.ipynb
sec02_walktree.ipynb
new.zip
new
sec06_zipfile.ipynb
xx_out
sec01_pathlib.ipynb
xx_text.txt
xsec06_practice2.ipynb
.ipynb_checkpoints
sec04-glob.ipynb
chapter.ipynb
>>> for entity in inws.rglob('**'):
>>>     print(entity)
.
new
xx_out
xx_out/new
.ipynb_checkpoints

3.1.2. 查看文件属性

>>> for entity in inws.rglob('*.txt'):
>>>     print(entity)
>>>     print(entity.stat().st_ctime)
>>>     print(entity.stat().st_mtime)
xx_text.txt
1708570335.110625
1688124307.195595
new/hello1.txt
1708570335.1226256
1705671810.707465
new/hello2.txt
1708570335.1226256
1705671810.7154653
xx_out/new/hello1.txt
1708570335.1226256
1705671810.6994646
xx_out/new/hello2.txt
1708570335.1226256
1705671810.6994646