繁体   English   中英

使用正则表达式查找文件及其各自的目录

[英]Find files with regex and their respective directory

我正在处理“C:\Documents”目录。

它有很多子目录,我需要找到所有文件名以“A0”前缀开头并以“.xls”扩展名结尾的文件。 例如,“A0SSS.xls”或“A0ASDF.xls”

是否可以获取所有这些文件并获取它们的目录?

例如,如果文件“A0SSS.xls”位于“C:\Documents\Folder1”,我需要知道文件名 (A0SSS.xls) 及其各自的目录 (C:\Documents\Folder1)。

要找到匹配文件的路径,您可以使用过滤器运行递归搜索。 我建议您使用 pathlib,这样您就可以轻松地获取每个文件夹的父文件夹。 如果同一文件夹中有多个匹配文件,则父文件夹列表可能是多余的。 python 中有很多方法可以使列表唯一,其中一种方法是将列表转换为集合,根据定义必须是唯一的,然后将其转换回列表。

from pathlib import Path

search_path = Path("C:\Documents")
results = list(search_path.rglob("A0*.xlsx"))
string_results = [str(matching_path) for matching_path in results]
containing_folders = [r.parent for r in results]
unique_folders = list(set(containing_folders))

print("matching files:")
for r in string_results:
    print(r)
print()
print("containing folders:")
for f in unique_folders:
    print(f)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM