输出格式不正确

时间:2018-03-12 06:55:57

标签: python

我正在尝试使用日期文本文件并重新格式化它们。例如:' 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个值

2 个答案:

答案 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()