这可能是因为当你进行分割时,没有:
,因此该函数只返回一个参数,而不是 2 个。这可能是由最后一行引起的,这意味着最后一行除了空格之外什么都没有。就像这样:
>>> a = ' '
>>> a = a.strip()
>>> a
''
>>> a.split(':')
['']
正如你所看到的,列表返回自.split
只是一个空字符串。因此,为了向您展示一个演示,这是一个示例文件:
a: b
c: d
e: f
g: h
我们尝试使用以下脚本(val.txt
是上述文件的名称):
with open('val.txt', 'r') as v:
for line in v:
a, b = line.split(':')
print a, b
这给了我们:
Traceback (most recent call last):
a b
c d
File "C:/Nafiul Stuff/Python/testingZone/28_11_13/val.py", line 3, in <module>
a, b = line.split(':')
e f
ValueError: need more than 1 value to unpack
当尝试通过调试器查看这个时,变量line
变成\n
,并且你不能分割它。
然而,一个简单的逻辑修正就可以纠正这个问题:
with open('val.txt', 'r') as v:
for line in v:
if ':' in line:
a, b = line.strip().split(':')
print a, b