1、读取文件并按时间顺序排序:
对于这个问题我整理了两种思路:
方法一
首先打开文件:
t_date = open('testdata.txt', 'r').read()
(因为之前生成的txt文件的保存格式为字符串)其格式如下所示:
`20/03/2016 13:38:50
05/07/2001 19:14:18
…
11/06/2003 10:05:57
19/10/2015 13:56:11`
这个问题的重点在与对时间数据进行排序,而文件中的数据是字符串形式,若要按照时间顺序进行排序比较,首先要对时间数据进行类型转换,即将字符串类型转换为时间日期类型数据:
时间日期数据格式化方法:
date_time = datetime.datetime.strptime(datetimes,"%Y-%m-%d %H:%M:%S")
需注意的是利用此方法进行类型转换时,datetime.datetime.strptime(a,b)
参数a,b的格式应一一对应;例如:“2003-11-02 10:05:57”>>"%Y-%m-%d %H:%M:%S"
当通过循环遍历把文件中所有数据转换为时间类型数据后,可以采用列表排序方法对数据进行排序:lt.sort()
该方法完整代码如下:
def sort_date1():
t_date = open('testdata.txt', 'r').read()
l_date = t_date.splitlines()
ld = []
for dt in l_date:
d1 = dt.split(' ')
d2 = d1[0].split('/')
d3 = d1[1]
d4 = d2[2] + '-' + d2[1] + '-' + d2[0]
datetimes = d4 + ' ' + d3
date_time = datetime.datetime.strptime(datetimes,"%Y-%m-%d %H:%M:%S")
# print(date_time)
ld.append(date_time)
ld.sort(reverse=True)
with open('t.txt','w')as p: