[英]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.