我有一个可以不同命名的文件列表,但总是包含创建文件的时间字符串。但是,它并不总是在同一个地方。
示例:
dir=['test_140815080910_data.p',
'other_test_140815081010_data.p',
'other_test_140815081111_other_data.p']
如何按#?
按顺序对列表进行排序由于
答案 0 :(得分:3)
您可以使用re
并查找10位数的块,并将其用作第一个排序键,后跟字符串本身,例如:
import re
data=['test_140815080910_data.p',
'other_test_140815081010_data.p',
'other_test_140815081111_other_data.p']
data.sort(key=lambda L: (re.findall('\d{10}', L), L))
# ['test_140815080910_data.p', 'other_test_140815081010_data.p', 'other_test_140815081111_other_data.p']
答案 1 :(得分:0)
import re
dir.sort(key=lambda a: re.findall("(\d{1,})", a)[0])