位置:首页 » 文章/教程分享 » Python列出目录中的所有文件
在Python中,可以使用os.walker或glob创建一个类似于find()的函数来搜索或列出指定目录中的文件或文件夹以及它的子目录。
1. os.walker
1.1. 列出指定目录+子目录中的所有.txt文件。
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. 列出指定目录+子目录中的所有目录。
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)
2. glob

在Python 3.5版中更改:使用**支持递归globs。

2.1. 列出指定目录中的所有.txt文件+子目录(**)。
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. 列出指定目录中的所有目录+子目录(**)。
import glob

folders = [f for f in glob.glob(path + "**/" recursive=True)]

for f in folders:
    print(f)