错误返回"need more than 1 value to unpack"



我正在尝试获取带有日期的文本文件并重新格式化它们。例如:'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

如果它不能解决您的问题,请发布您正在阅读的示例文件。

相关内容

最新更新