![](/img/trans.png)
[英]Python: find most recent date in one column with no matching date in another
[英]Using python to find the csv with most recent date
我使用答案来获取目录中的文件列表,如下所示:
['name1_2020-06-25.csv','name1_2020-06-24.csv','name1_2020-06-23.csv','name1_2020-06-22.csv','name_2_2020-06-25.csv','name_2_2020-06-24.csv','name_2_2020-06-23.csv','name_2_2020-06-22.csv']
我想找到一种方法来选择具有最近日期的name1
文件。
首先,您可以使用字符串方法startswith()
( 此处的文档)来挑选出具有正确名称的那些。 您不需要正则表达式,因为名称在开头。
然后,由于日期的结构很好地为 YYYY-MM-DD,因此您可以使用sort()
或sorted()
(此处的文档)对结果列表进行排序以获得最新日期。
像这样的东西:
def find_most_recent(file_list, prefix):
s_list = sorted([fname for fname in file_list if fname.startswith(prefix)])
return s_list[-1]
这使用带有if
子句的列表推导( 此处的文档)来创建一个新列表,该列表被过滤为仅以传入前缀开头的文件名。 然后将该列表通过传递给sorted()
进行排序。
我没有为反转排序而烦恼,因为选择列表中的最后一个条目同样容易(使用 s_list 上的 -1 索引),但如果你想使用选项reverse=True
on sorted()
也可以sorted()
。
请注意,如果前缀/名称也可能是另一个有效名称的 substring,则startswith()
在这里会出现问题,但您指出这不是问题,因此对于此用例可以忽略它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.