Python将最大编号的文件识别为文件名的一部分

时间:2014-11-30 20:33:00

标签: python python-2.7

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

  file_01.csv
  file_02.csv
  file_03.csv

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

2 个答案:

答案 0 :(得分:7)

如果文件名的格式非常好,那么您只需使用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'

答案 1 :(得分:0)

import re
x=["file_01.csv","file_02.csv","file_03.csv"]
print max(x,key=lambda x:re.split(r"_|\.",x)[1])