我正在尝试获取带有日期的文本文件并重新格式化它们。例如:'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")
但是,它返回一个错误:回溯(最近一次调用(: 文件"pubdateformat.py",第 8 行,在 a,b,c = line.split("/"(值错误:需要 1 个以上的值才能解压缩
谁能解释一下这在说什么?
感谢您的帮助!
您正在读取.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')
您的错误指向此。
您的变量"data"至少有一个值,该值没有您期望的日期格式。这就是为什么它面临为 a、b 和 c 赋值的问题。请检查您的变量数据。您可以通过在 for 循环中添加一行来做到这一点,最好在 for 循环的开头
print(line) ## This is by python3
如果它不能解决您的问题,请发布您正在阅读的示例文件。