我想使用字典將值列表分隔爲鍵和值。該列表如果格式如下:爲什麼我會在python中使用split()方法獲取值錯誤?
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:需要多個值才能解包」,我不知道爲什麼。我已經嘗試修改.rtf文件,將等號兩邊的值用空格分開,以防有所作爲。
UPDATE
使用.rtf文件確實是問題,因爲由@tdelaney和其他人指出。轉換爲純文本後,代碼現在可以順利運行。感謝您的幫助,夥計們。
什麼是空白行,特別是在文件的末尾。基本調試是在拆分前打印行,並查看哪一行不符合您的期望。 – tdelaney
我不知道,我會給這個鏡頭... – jalyper
在普通的文本編輯器(例如vim或emacs)中打開文件,看看它是如何 - 如果它是真正的RTF - 不僅僅是格式化爲「key =值「... – haavee