在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)
3. 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)
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/tech/pnotes/264068.html