[英]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.