Python中,可以使用os.walker
或glob
创建一个类似于find()
的函数来搜索或列出指定目录中的文件或文件夹以及它的子目录。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
1. os.walker
1.1. 列出指定目录+子目录中的所有.txt
文件。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
import os
path = '/home/maxsu/hc2'
files = []
# r=root d=directories f = files
for r d f in os.walk(path):
for file in f:
if '.txt' in file:
files.append(os.path.join(r file))
for f in files:
print(f)
1.2. 列出指定目录+子目录中的所有目录。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
import os
path = '/home/maxsu/projects/hc2/'
folders = []
# r=root d=directories f = files
for r d f in os.walk(path):
for folder in d:
folders.append(os.path.join(r folder))
for f in folders:
print(f)
3. glob
在Python 3.5版中更改:使用**
支持递归globs
。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
2.1. 列出指定目录中的所有.txt
文件+子目录(**
)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
import glob
path = '/home/maxsu/projects/hc2/'
files = [f for f in glob.glob(path + "**/*.txt" recursive=True)]
for f in files:
print(f)
2.2. 列出指定目录中的所有目录+子目录(**
)。文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html
import glob
folders = [f for f in glob.glob(path + "**/" recursive=True)]
for f in folders:
print(f)
文章源自菜鸟学院-https://www.cainiaoxueyuan.com/bc/9602.html