为什么在 python 中使用 split() 方法的值会出现值错误?

Why am I getting a value error for values that use the split() method in python?

我正在尝试使用字典将值列表分成键和值。列表格式如下:

packagename=version_number
packagename2=version_number2
etc...

有时版本号有特殊字符,但绝不是等号。

dict = {}
with open('file.rtf') as f:
    for line in f.readlines():
        pkg,ver = line.split('=')
        dict[pkg] = ver

print("%s: %s" % (dict[pkg], dict[ver]))    

当我 运行 代码时,我收到以下错误:"ValueError: need more than 1 value to unpack" 我不确定为什么。我尝试通过用空格分隔等号两边的值来修改 .rtf 文件,以防产生差异。

更新

正如@tdelaney 和其他人指出的那样,使用 .rtf 文件确实是问题所在。转换为纯文本后,编码 运行 现在很流畅了。谢谢你们的帮助,伙计们。

您的输入文件是 RTF 格式,这意味着它包含这样的格式代码(即使它不包含任何格式):

{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
packagename=version_number\par
}

这不是您的程序所期望的输入,您可能在第一行收到错误,其中不包含 =,因此拆分为一个值,给出了您的错误。

尝试转换为 txt,或编写您的代码来处理 RTF。