错误返回“需要多于1个值才能解压缩”

时间:2018-03-09 08:44:28

标签: python

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

任何人都能解释一下这是什么意思吗?

感谢您的帮助!

2 个答案:

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