我正在尝试使用日期文本文件并重新格式化它们。例如:' 2017年1月31日'变成2017-1-31T:00:00:00Z'
代码:
with open('dateformat.txt', 'r') as f, open('output2.txt','w') as myfile:
data = f.readlines()
for line in data:
a,b,c = line.split("/")
if len(a) < 2:
a = "0" + a
if len(b) <2:
b = "0" + b
print(str(c)+"-"+str(a)+"-"+str(b)+"T:00:00:Z")
myfile.write(str(c)+"-"+str(a)+"-"+str(b)+"T:00:00:Z"+'\n')
该程序运行,但输出有一个奇怪的格式,其中年份本身连续,并在一年后有一个新的行。我试图让它在一条线上。此外,代码将运行良好的一些,但然后它吐出错误任何帮助将不胜感激!
谢谢
输出格式
2016
-07-07T:00:00位:Z
2017
-02-23T:00:00位:Z
错误讯息: Traceback(最近一次调用最后一次): 文件&#34; pubdateformat2.py&#34;,第7行,in a,b,c = line.split(&#34; /&#34;) ValueError:解包需要多于1个值
答案 0 :(得分:0)
使用 datetime 模块重新格式化为所需的日期时间格式。
<强>演示:强>
import datetime
s = '1/31/2017'
print(datetime.datetime.strptime(s, "%m/%d/%Y").strftime("%Y-%m-%dT:%H:%M:%SZ"))
<强>输出:强>
2017-01-31T:00:00:00Z
答案 1 :(得分:0)
由于年份变量(c)位于文件行的末尾,因此当您使用split()
分割每行时,换行符会坚持使用它。使用条带将其移除。
而不是str(c)
使用str(c).strip()