运维工程师采集到某产品线网运行一天产生的log文件N,现需根据文件生成时间先后顺序对文件进行排序,文件生成格式为:yyyy-mm-dd hh:mm:ss。
yyyy表示年份(1970-2022)
mm表示月份(0-11)
dd表示天(1-31)
hh表示小时(0-23)
mm表示分钟(0-59)
ss表示秒(0-59)
时间可能并没有补全,也就是说,2022-07-01 01:01:01也可能表示为2022-7-1 1:1:1.1。
输入描述:
第一行输入一个整数N表示文件个数,1<=N<=100000,接下来N行输入M个时间。
输出描述:
按文件生成时间先后排序,如果有两个时间表示的时间相同,则保持输入顺序。
输入:
2022-02-02 01:41:8
2022-03-03 1:09.21
输出:
2022-02-02 01:41:8
2022-03-03 01:09.21
import sys
import datetime
if __name__=="__main__":
list_time=[]
while 1:
try:
line=input()
list_time.append(line)
except:
break
def get_list(date):
if "." in date:
return datetime.datetime.strptime(date,"%Y-%m-%d %H:%M.%S").timestamp()
else:
return datetime.datetime.strptime(date,"%Y-%m-%d %H:%M:%S").timestamp()
list_time1=sorted(list_time,key=lambda date:get_list(date))
for item in list_time1:
if "." in item:
tmp=datetime.datetime.strptime(item,"%Y-%m-%d %H:%M.%S").strftime("%Y-%m-%d %H:%M.%S")
print(tmp)
else:
print(item)
1、strftime:将给定格式的日期时间对象转换为字符串。日期时间对象=>字符串,控制输出格式。
2、strptime:将字符串解析为给定格式的日期时间对象。字符串=>日期时间对象,解析字符串。
