【发布时间】:2016-12-19 10:30:28
【问题描述】:
我目前使用的是 Python 3.x。我正在寻找递归搜索目录的两个特定文件名。我知道这两个文件名中的每一个都将存在于某些目录中。如果其中一个文件存在,则另一个将存在。识别出文件后,我想将它们提取到一个列表中,但以某种方式将它们链接起来,以便稍后将它们一起处理,因为我想从两个文件中的每一个中提取数据并分析该数据,然后执行如果有意义的话,相同但来自不同目录的相同文件。因此,例如在 C:\Desktop 和 C:\MyDocuments 中,每个目录都将包含我要识别的两个文件名(manifest.plist 和 info.plist )
到目前为止,我有以下基于文件扩展名而不是文件名的搜索:-
def find(pattern, path):
result = []
for root, dirs, files in os.walk(path):
for name in files:
if fnmatch.fnmatch(name, pattern):
result.append(os.path.join(root, name))
if __name__=='__main__':
find("*.plist", test_path)
确切的文件名是 manifest.plist 和 info.plist。
上述方法效果很好,但它需要一段时间,因为它需要处理每个目录中的数千个文件。
有没有办法根据文件的具体名称快速查找文件,同样,我如何最好地链接列表中每个目录中的两个文件?我正在考虑制作 result[] 列表以包含元组,每个元组包含各自 info.plist 和 manifest.plist 的路径
谢谢大家
【问题讨论】:
标签: python python-3.x