我正在尝试使用日期文本文件并重新格式化它们。例如:'1/31/2017'
变为'2017-1-31T:00:00:00Z'
代码:
with open("test.rtf") as f:
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(c,"-",a,"-",b,"T:00:00:Z")
然而,它返回一个错误: Traceback(最近一次调用最后一次): 文件“pubdateformat.py”,第8行,in a,b,c = line.split(“/”) ValueError:解包需要多于1个值
任何人都能解释一下这是什么意思吗?
感谢您的帮助!
答案 0 :(得分:0)
您的错误指向此。
您的变量&#34;数据&#34;至少有一个值没有您期望的日期格式。这就是为什么它面临着为a,b和c赋值的问题。请检查您的可变数据。你可以通过在for循环中添加一行,最好是在for循环的开头
print(line) ## This is by python3
如果它无法解决您的问题,请发布您正在阅读的示例文件。
答案 1 :(得分:0)
您正在读取.rtf文件,就像它的.txt文件一样。 RTF是Microsoft产品使用的文本文件格式,例如Word和Office。
如果您使用文本文件尝试相同的示例,它应该可以正常工作。获取库以读取.rtf文件或使用文本文件,相同的代码应该可以工作。
In [17]: with open("test.txt") as f:
...: 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(c,"-",a,"-",b,"T:00:00:Z")
...:
OUTPUT ('2017', '-', '01', '-', '31', 'T:00:00:Z')