从文件读取到python字典

从文件读取到python字典,python,dictionary,Python,Dictionary,我想从一个文件中读取内容,我已将逗号分隔的值写入该文件。第一个值是图书标识号,其余的是作者和出版年份等详细信息 文件books.txt的内容如下所示 001,C Programming,John Doe,2001,4 002,Kids story,Kier Alcock,2014,20 我想把这个ID号作为键,其余的作为它的值。 到目前为止我试过的代码 details = {} with open("books.txt") as f: for line in f: (

我想从一个文件中读取内容,我已将逗号分隔的值写入该文件。第一个值是图书标识号,其余的是作者和出版年份等详细信息

文件books.txt的内容如下所示

001,C Programming,John Doe,2001,4

002,Kids story,Kier Alcock,2014,20
我想把这个ID号作为键,其余的作为它的值。 到目前为止我试过的代码

details = {}
with open("books.txt") as f:
    for line in f:
        (key, val) = line.split(',')
        details[int(key)] = val
        print (details)
但这给了我一个错误

    (key, val) = line.split(',')
ValueError: not enough values to unpack (expected 2, got 1)
你能帮我把每一行分别作为记录,把第一个值指定为键,把其余的值指定为值吗

details = {}
with open("books.txt", "r") as f:
    for line in f:
        values = (line.strip()).split(",")
        details[int(values[0])] = values[1:]

这不起作用,因为行中有两个以上的值:

(key, val) = line.split(',')
details[int(key)] = val
安装,读取尽可能多的值:

key, *values = line.split(',')
details[int(key)] = values
或者,更好的是,要明确,比如:

key, title, author, year, something = line.split(',')
details[int(key)] = title, author, year, something

删除大括号,例如
键,val=
,但是根据
CSV
数据,您需要在左侧添加5个大括号。您的文件有一个空行:没有逗号可以拆分预期的输出。现在还不清楚您试图做什么,因为即使修复了立即出现的明显错误,也会导致程序无法运行。实际上,我问题中的空行是一个错误。在文件中,记录仅用新行分隔。我真正需要的是逐行打印内容,同时将第一个值指定为键。我为我的打字错误道歉