我是python的新手,所以我无法理解如何解决我的任务:(
我有一个简单的代码,用于扫描文件夹和子文件夹中的文件,并将其名称放在一个数组中。
import os
files = []
folders = []
for (path, dirnames, filenames) in os.walk('Folder'):
folders.extend(os.path.join(path, name) for name in dirnames)
files.extend(os.path.join(path, name) for name in filenames)
files.sort()
folders.sort()
print (files)
print (folders)
在这些文件夹中会有很多文件基本上只有一种命名模式,例如:
SMTH-SMTH.SMTH.ver1.ext
SMTH-SMTH.SMTH.ver2.ext
SMTH-SMTH.SMTH.ver3.ext
我需要以某种方式扫描这个数组并在那些文件中选择具有最大 ver。数字的文件,然后将结果放在另一个数组中,很少我尝试但是我失败了。提前谢谢!
答案 0 :(得分:0)
在您的情况下,更好的解决方案是使用fnmatch模块。请谷歌
https://docs.python.org/2/library/fnmatch.html
匹配时可以做些什么 - >使用re模块https://docs.python.org/2/library/re.html
如果您在显示扫描部分后可以访问每个file_name,那么就可以更容易地对这些文件进行匹配。
此外,如果您的文件位于for C:// Folder_Name / Folder / file_name,则可以使用os模块仅获取os.path.basename(文件)的文件名