我目前在一个项目中,我实际上是在尝试基于许多分散的 xml 文件创建一个树结构,遗憾的是,这些文件的组织方式不是很一致。具体来说,我现在的重点是给定许多具有给定文件扩展名的文件,我希望能够找到指示其布局的 xml 文档。幸运的是,该文档始终具有相同的名称,但遗憾的是,该文档相对于我尝试将其链接到的媒体文件并不总是位于相同的位置。我发现的最明智的解决方法是在目录结构中寻找具有相似名称的最近文件。但是,我设法在 Python 中做到这一点的唯一方法是向上目录并使用 os.walk 查找考虑中的文件。可悲的是,这非常慢,我希望能够为大量媒体文件执行此操作,因此我正在寻找更优雅的解决方案。下面是一些示例代码,展示了我目前的方法:
from os import listdir
from os.path import isfile, join, realpath
current_directory = "/path/to/example.mp3"
all_files = lambda path: [file for file in listdir(path) if isfile(join(path,file))]
filename = "test.xml"
found = False
while found is False:
current_directory = current_directory[:current_directory.rfind("/")]
current_files = all_files(current_directory)
if filename in current_files:
return current_files[current_files.index(filename)]
目录结构还不错,上面的方法一次会到达两个文件实例,但我仍然觉得上面的方法不是很pythonic,而且比它真正需要的复杂得多。有任何想法吗?