python-使用os.walk查找文件名中值最高的文件
Posted
技术标签:
【中文标题】python-使用os.walk查找文件名中值最高的文件【英文标题】:python- find the file with the highest value in the file name using os.walk 【发布时间】:2021-03-29 08:53:20 【问题描述】:我有一些文件夹,每个文件夹中都有一个文件列表,如下所示:
文件-Test01-summary.xlsm
文件-Test02-summary.xlsm
文件-Test03-summary.xlsm
文件的数量可以不同!在每个文件夹中可以是 3 到 5 个文件! 我需要一个代码来找到具有最高测试编号的文件。
如果代码能用os.walk()
写就太好了
【问题讨论】:
【参考方案1】:尝试获取文件名并将其拆分如下以过滤整数。
我没有在 os.walk() 中编写代码,但我希望这能给你一个开始。
#List with all file names
from os import walk
FilenameList = ['file-Test01-summary.xlsm', 'file-Test02-summary.xlsm', 'file-Test03-summary.xlsm']
for (<dirpath>, <dirnames>, <filenames>) in walk (<mypath>):
FilenameList.extend(filenames)
break
#This list will contain all the test numbers
IntegerList = []
#This loop will go through all filenames and filter the testnumbers and appand them to Integerlist
for file in FilenameList:
for item in File:
try:
IntegerList.append(float(t))
except ValueError:
pass
#This will print the highest test number
print(max(IntegerList))
希望这会有所帮助;)
【讨论】:
感谢您的回答。但问题是每个文件夹中的文件数量不一样。每个文件夹中可能有 3,4 或 5 个文件!我将编辑我的主要问题。 你可以编写一个循环遍历文件夹的每个文件,稍等片刻,我会为它写一些代码。 我添加了代码!这将遍历指定文件夹中的所有文件【参考方案2】:一种简单的方法是遍历所需文件,而不是使用sorted
对列表进行升序或降序排序。
使用ofunctions.file_utils
可以方便地仅列出扩展名为.xlsm
的文件。
使用以下方式安装软件包:
python -m pip install ofunctions.file_utils`
这是工作代码:
import ofunctions.file_utils
files = ofunctions.file_utils.get_files_recursive('.', ext_include_list='.xlsm')
files = sorted(files, reverse=True) # Remove reverse=True to achieve ASC ordering
print(files)
结果:
['.\\file-Test03-summary.xlsm', '.\\file-Test02-summary.xlsm', '.\\file-Test01-summary.xlsm']
您的最高号码将是files[0]
。
您可以将参数depth=1
添加到get_files_recursive
以防止下降到子目录。
免责声明:我是函数的作者
【讨论】:
以上是关于python-使用os.walk查找文件名中值最高的文件的主要内容,如果未能解决你的问题,请参考以下文章
Python - Os.walk循环遍历不同驱动器中的目录列表
python使用os.listdir和os.walk获得文件的路径