我有一个脚本,其目的是对不断下载到服务器上的空间数据集文件进行排序和处理。我的列表目前大致如下:
list = ['file.t00Z.wrff02.grib2', 'file.t00Z.wrff03.grib2', 'file.t00Z.wrff00.grib2',
'file.t00Z.wrff05.grib2', 'file.t00Z.wrff04.grib2', 'file.t00Z.wrff01.grib2',
'file.t06Z.wrff01.grib2', 'file.t06Z.wrff00.grib2', 'file.t06Z.wrff02.grib2', ...]
如您所见,每个文件都有特定的命名约定。
稍后在脚本中,将按顺序处理此列表中的文件,但我需要按照每个文件名中“wrff”后面的两位数字(00、01、02...)指定的时间顺序处理它们。
我目前有一个正则表达式,可以根据需要从列表中删除与“file.t”后面的两位数字不匹配的任何文件。但是有没有一种简单的方法可以按子字符串对列表元素进行排序呢?
注意:我会选择简单地按修改时间对这些文件进行排序,但它们经常出现在数据目录中。
您可以使用sorted
or sort
并提供一个 lambda 函数来提取您想要的数字作为键。
sorted_list = sorted(list, key=lambda f: f[f.find('wrff'): f.find('wrff') + 6])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)