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笔记4-遍历文件夹目录os.walk()

Python - Os.walk循环遍历不同驱动器中的目录列表

python使用os.listdir和os.walk获得文件的路径

python中的os.walk

【Python】os.walk的使用及获取文件夹下所有文件的大小

如何在 Python 中使用 os.walk 获取特定文件或目录列表?