【问题标题】:Python identify file with largest number as part of filenamePython将具有最大数字的文件识别为文件名的一部分
【发布时间】:2014-12-01 04:51:23
【问题描述】:

我的文件末尾附加了一个数字,例如:

  file_01.csv
  file_02.csv
  file_03.csv

我正在寻找一种简单的方法来识别附加了最大数字的文件。是否有一种适度简单的方法来实现这一目标? ...我正在考虑导入文件夹中的所有文件名,提取最后一位数字,转换为数字,然后查找最大数字,但是对于我认为是一项相对常见的任务来说,这似乎有点复杂。

【问题讨论】:

  • 所以你想从一个目录中读取所有文件名并获取其名称中数字最大的文件名?
  • 是的,所以在这种情况下,我想知道它是“file_03.csv”(“file_”的部分每次都是一致的)

标签: python python-2.7


【解决方案1】:

如果文件名的格式真的很好,那么你可以简单地使用max

>>> max(['file_01.csv', 'file_02.csv', 'file_03.csv'])
'file_03.csv'

但请注意:

>>> 'file_5.csv' > 'file_23.csv'
True
>>> 'my_file_01' > 'file_123'
True
>>> 'fyle_01' > 'file_42'
True

所以您可能想为您的函数添加某种验证,和/或使用glob.glob

>>> max(glob.glob('/tmp/file_??'))
'/tmp/file_03'

【讨论】:

  • 从列表中提取整数 3 的最佳方法是什么?
【解决方案2】:
import re
x=["file_01.csv","file_02.csv","file_03.csv"]
print max(x,key=lambda x:re.split(r"_|\.",x)[1])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-18
    • 1970-01-01
    • 2013-01-31
    • 2021-02-13
    • 2019-07-06
    • 2019-01-12
    • 1970-01-01
    • 2019-06-19
    相关资源
    最近更新 更多