我正在尝试将文件的第一行拆分为3个单独的值,但它给了我一个错误
ValueError:没有足够的值来解包(预期3,得1)
#open files
infile = open("milkin.txt","r").readlines()
outfile = open("milkout.txt","w")
#instantiate variables
a,b,c = infile[0].split()
milkin.txt
abc
def
ghi
答案 0 :(得分:2)
首先,如果没有指定参数,split()
默认使用空格。
>>> 'abc'.split()
['abc']
幸运的是,要将字符串解压缩为多个值,您不需要split()
字符串。由于字符串本身是可迭代的,因此您可以解压缩多个值,只要您可以确保字符串的长度与声明变量的数量匹配。
>>> a, b, c = 'abc'
>>> a
'a'
>>> b
'b'
>>> c
'c'
此外,文件对象的readlines()
方法返回包含尾随换行符的字符串列表,因此您可能认为'abc'
处的字符串infile[0]
确实是'abc\n'
。
这应该有效:
a, b, c = infile[0].strip()