簡體   English   中英

為什么在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:需要多個1值才能解壓縮”,但我不確定為什么。 我試圖通過用空格分隔等號兩側的值來修改.rtf文件,以防造成影響。

UPDATE

正如@tdelaney和其他人指出的那樣,使用.rtf文件確實是問題所在。 轉換為純文本后,代碼現在可以平穩運行。 伙計們,謝謝您的幫助。

您的輸入文件為RTF格式,這意味着它包含這樣的格式代碼(即使它不包含任何格式):

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

這不是您的程序所期望的輸入,並且您可能會在第一行收到錯誤,該錯誤包含no = ,因此將拆分為一個值,從而給出錯誤。

嘗試轉換為txt ,或編寫代碼以處理RTF。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM