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

为什么在python中使用split()方法的值会出现值错误?,python,dictionary,key-value,Python,Dictionary,Key Value,我试图使用dict将值列表分为键和值。如果列表的格式如下: 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

我试图使用dict将值列表分为键和值。如果列表的格式如下:

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:需要超过1个值才能解包”,我不知道为什么。我试图通过用空格分隔等号两侧的值来修改.rtf文件,以防造成差异

更新

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

你们的输入文件的格式是,这意味着它包含如下格式代码(即使它不包含格式):

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

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

您的输入文件的格式为,这意味着它包含如下格式代码(即使不包含格式):

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

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

您的输入文件的格式为,这意味着它包含如下格式代码(即使不包含格式):

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

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

您的输入文件的格式为,这意味着它包含如下格式代码(即使不包含格式):

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


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

那么空行呢,尤其是在文件末尾。基本调试是在分割之前打印行,看看哪一行不符合您的期望。我不知道,我要试一试…在普通文本编辑器(例如vim或emacs)中打开文件,看看它是如何-如果它是真正的RTF-而不仅仅是格式化为“key=value”的行…以及空行,尤其是在文件末尾。基本调试是在分割之前打印行,看看哪一行不符合您的期望。我不知道,我要试一试…在普通文本编辑器(例如vim或emacs)中打开文件,看看它是如何-如果它是真正的RTF-而不仅仅是格式化为“key=value”的行…以及空行,尤其是在文件末尾。基本调试是在分割之前打印行,看看哪一行不符合您的期望。我不知道,我要试一试…在普通文本编辑器(例如vim或emacs)中打开文件,看看它是如何-如果它是真正的RTF-而不仅仅是格式化为“key=value”的行…以及空行,尤其是在文件末尾。基本的调试是在拆分之前打印行,看看哪一行不符合您的期望。我不知道,我要试一试…在普通的文本编辑器(例如vim或emacs)中打开文件,看看它是如何-如果它是真正的RTF-而不仅仅是格式为“key=value”的行…OP可能能够使用
pyth
库()要从RTF文件中提取明文,OP可以使用
pyth
库()从RTF文件中提取明文。OP可以使用
pyth
库()从RTF文件中提取明文。OP可以使用
pyth
库()从RTF文件中提取明文。
{\rtf1\ansi{\fonttbl\f0\fswiss Helvetica;}\f0\pard
packagename=version_number\par
}