Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories) 但在 Python
Posted
技术标签:
【中文标题】Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories) 但在 Python [重复]【英文标题】:Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories) but in Python [duplicate] 【发布时间】:2021-12-04 06:24:57 【问题描述】:C#中有Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories)
,但是是否有相同或相似的功能来搜索所有目录中的文件?
【问题讨论】:
【参考方案1】:你可以使用os.walk('path/to/dir')
来自documentation-
通过遍历树在目录树中生成文件名 自上而下或自下而上。对于根目录在树中的每个目录 目录顶部(包括顶部本身),它产生一个三元组(目录路径, 目录名,文件名)。
dirpath 是一个字符串,目录的路径。 dirnames 是一个列表 dirpath 中子目录的名称(不包括“.”和“..”)。 filenames 是非目录文件的名称列表 目录路径。请注意,列表中的名称不包含路径组件。 获取文件或目录的完整路径(以顶部开头) dirpath, do os.path.join(dirpath, name).
对于匹配的文件名,您可以使用fnmatch
【讨论】:
【参考方案2】:C#中有xxx,有没有类似的功能可以在Python中搜索所有目录下的文件?
看看glob.glob
和recursive=True
,示例用法假设你是这样的结构
dir1
dir2
dir3
file.txt
然后
import glob
for filename in glob.glob("**/*.txt",recursive=True):
print(filename)
输出
dir1/dir2/dir3/file.txt
【讨论】:
以上是关于Directory.GetFiles("path/to/dir", "*.*", SearchOption.AllDirectories) 但在 Python 的主要内容,如果未能解决你的问题,请参考以下文章
Directory.GetFiles:如何只获取文件名,而不是完整路径? [复制]
c#如何获取某目录下的几种格式的图片文件。Directory.GetFiles
Directory.EnumerateFiles 与 Directory.GetFiles 有啥区别?