我有一个包含* .txt文件的文件夹,其中包含特定格式(c是字符,d是数字,yyyy-mm-dd-hh-mm-ss是日期格式)
cccccd_ddd_cc_ccc_c_dd-ddd_yyyy-MM-DD-HH-MM-ss.txt
或
cccccd_ddd_cc_ccc_c_dd-dddd_yyyy-MM-DD-HH-MM-ss.txt
或
cccccd_ddd_cc_ccc_c_d_yyyy-MM-DD-HH-MM-ss.txt
当单个数字d等于0时
我想创建一个python脚本来获取日期并对该特定日期的文件进行排序。
到目前为止我已经完成了
import os
list_files=[]
for file in os.listdir():
if file.endswith(".txt"):
#print(file)
list_files.append(file)
但我对正则表达式有点新意。感谢
答案 0 :(得分:2)
您可以使用.split()
拆分字符串。
似乎我们可以从" _"的最后一次出现中删除,删除"之后的部分。"得到时间戳。
因此,从file_name返回时间戳的方法是:
def get_timestamp(file_name):
return file_name.split("_")[-1].split('.')[0]
由于所有日期都是相同的格式,python可以使用时间戳字符串本身对它们进行排序 要使用该时间戳获取已排序的文件名列表,您可以执行以下操作:
sorted_list = sorted(list_files, key=get_timestamp)
有关Key函数的更多信息,请参阅官方python文档。