繁体   English   中英

在python中为现有文件添加时间

[英]Adding time to an existing file in python

我想用Python更新一个现有的file.txt,它有两列,一列代表几天,一列代表时间,这样它将在同一文件的另一列中汇总新的时间。

Sunday      07:00
Monday      07:35
Tuesday     05:35
Wednesday   06:45
Thursday    08:40

例如,加30分钟:

Sunday      07:00   07:30
Monday      07:35   08:05
Tuesday     05:35   06:05
Wednesday   06:45   07:15
Thursday    08:40   09:10

datetime模块对此非常有帮助。 它使您可以创建time对象和timedelta对象,只需使用+运算符就可以将它们添加在一起。 因此,将30分钟添加到08:30:25:

>>> from datetime import datetime, timedelta
>>> d = datetime.strptime("08:30:25", "%I:%M:%S") + timedelta(minutes=30)
>>> d.strftime("%I:%M:%S")
'09:00:25'
In [139]: d='Sunday      07:00'

In [140]: b=d.split()

In [141]: b
Out[141]: ['Sunday', '07:00']

In [142]: (datetime.datetime.strptime(b[1], '%H:%M') + datetime.timedelta(minutes=30)).strftime('%H:%M')
Out[142]: '07:30'
from datetime import datetime, timedelta

f=open("testcase","r") #open the file

pairs = [l.split() for l in f.readlines()] #get [day,time] pairs

f.close()

#this long line creates a list of [day,time1,time2] using list comprehensions
#you can change it a bit to change the output format.
data = ["%s%s%s\n" % (p[0].ljust(12),p[1].ljust(8), 
    (datetime.strptime(p[1],"%H:%M") + timedelta(minutes=30)).strftime("%H:%M")) 
    for p in pairs]

#reopen the file for writing and store the new data.
f = open("testcase","w")
f.writelines(data)
f.close();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM