嗨朋友我的文件格式如下
#temp.txt
fruit apple
vegi leafy
我正在尝试使用以下代码读取文件并将元素推送到字典
with open("temp.txt") as fd:
d = dict(line.rstrip().split(None, 1) for line in fd)
假设我的输入文件在文件末尾有新的空行我得到以下错误
ValueError: dictionary update sequence element #2 has length 0; 2 is required
有人可以告诉我如何克服这个问题吗?
答案 0 :(得分:1)
with open("temp.txt") as fd:
d = dict(line.rstrip().split(None, 1) for line in fd if not line == '\n')
答案 1 :(得分:0)
由于您的temp.txt
文件中有空行,当您尝试使用条带并拆分该行时它将失败,并且它不会产生两个参数。
虽然不那么优雅,但您可能需要测试每行上有两个参数,否则如果您的一行只有一个参数,它也会失败。例如,您可以执行以下操作:
with open("temp.txt") as fd:
d = dict(line.rstrip().split(None, 1) for line in fd if len(line.rstrip().split(None, 1)) == 2)
这将适用于以下文件,它会忽略第二个fruit
条目:
fruit apple
vegi leafy
fruit
答案 2 :(得分:0)
在with
:
try:
-your statement-
except ValueError:
continue