我目前在一个项目中,我实际上是在尝试基于一些分散的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,而且比实际需要的要复杂得多。有任何想法吗?
慕容森
相关分类