我想将文本文件的每一行拆分为两个" - ",但我一直收到这个错误:
File "quiz.py", line 21, in Vocab
questions, answers = line.split("-")
ValueError: too many values to unpack (expected 2)
我对编码很新,可以使用一些帮助。欢迎所有提示!
import hashlib
testFile = ""
def qSearch():
options = input ("Vocab/Grammar/or Special? (v/g/s)")
if options == "v":
testFile = "Vocabtest"
Vocab()
elif options == "g":
Grammar()
testFile = "Grammartest"
elif options == "s":
Special()
testFile = "Specialtest"
else:
qSearch()
def Vocab():
with open('Vocabtest.txt','r') as f:
for line in f:
questions, answers = line.split("-") ### error
print (questions)
qSearch()
我的文本文件中的文字格式如下:
Magandang umaga - Good Morning
Magandang hapon - Good Afternoon
Magandang gabi - Good evening
Magandang umaga sa’yo - Good Morning to you
Magandang hapon din sa’yo - Good Afternoon to you to
答案 0 :(得分:1)
问题是因为在输入文本(.txt)文件的第21行,您有多个-
,但您只需要一个。{/ p>
更安全的方法是只拆分一次:
questions, answers = line.split("-", 1)
答案 1 :(得分:1)
“解包”是您写作时所做的事情的名称
value1, value2 = a_list
当你做这样的任务时,你隐含地假设a_list
中包含多少个值 - 这里是2.如果有多于或少于2,那么就没有好办法给出value1
和value2
值并没有做出非常令人惊讶和无益的事情(比如留空,或者保留列表中的某些元素未分配)。
所以too many values to unpack
表示文件中至少有一行line.split('-')
会产生超过2个元素 - 也就是说,至少有一行包含多个-