我有一个包含 *.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)
但是我对正则表达式有点陌生。谢谢
最佳答案
您可以使用.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官方文档中学习。
关于python - 按文件名日期对日期进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48343822/