在 Python 中内置了 glob
模块,可以实现对文件与文件夹名称的获取。但是由于它是基于字符串方式实现的,
所以更推荐 pathlib
模块。
from glob import glob
wfiles = glob('*', recursive=True)
print(wfiles)
['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', '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', 'sec01_filepath.ipynb', 'chapter.ipynb']
要注意匹配模式中 **
的使用。即使不指定嵌套模式,但是根据匹配机制,会匹配到子文件夹。
from glob import glob
wfiles = glob('**', recursive=True)
print(wfiles)
['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', 'new/hello1.txt', 'new/hello2.txt', 'archive', 'archive/new_demo.txt', 'archive/new.txt', 'archive/demo.json', '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', 'sec01_filepath.ipynb', 'chapter.ipynb']
from glob import iglob
entities = iglob('*.txt')
for entity in entities:
print(entity)
xx_hello2.txt xx_text.txt 112233.txt 123.txt dst.txt xx_hello.txt txt_path.txt new_demo.txt