Python文件内容到空字典的字典

时间:2016-03-13 15:50:58

标签: python

嗨朋友我的文件格式如下

#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

有人可以告诉我如何克服这个问题吗?

3 个答案:

答案 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