我想通过“ - ”将文本文件的每一行拆分为两行,但我不断收到此错误:
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
“解包”是您编写
value1, value2 = a_list
时所做的事情的名称
当你做这样的任务时,你隐含地假设a_list
中包含了多少个值 - 这里是2.如果有多于或少于2个,那么就没有好的方法来给value1
和value2
值而不做令人惊讶和无益的事情(比如留下一个空的,或者保留一些未分配的列表元素)。
所以too many values to unpack
意味着你的文件中至少有一行line.split('-')
导致超过2个元素 - 也就是说,至少有一行有一个以上的-
。
问题是因为在输入文本(.txt)文件的第21行,你有多个-
,但你只想到一个。
更安全的方法是只拆分一次:
questions, answers = line.split("-", 1)