Python代码有效,但也说“索引超出范围”

时间:2017-02-18 15:51:54

标签: python-3.x

我需要从文件中取出每一行并从中生成一个字典 这是我的代码:

def recnik(line):
    knjiga1 = {}
    info = line.split("|")
    knjiga1["autori"] = info[0]
    knjiga1["naslov"] = info[1]
    knjiga1["godina"] = info[2]
    knjiga1["isbn"] = info[3]
    knjiga1["zanr"] = info[4]
    knjiga1["cena"] = info[5]
    knjiga1["kolicina"] = info[6]
    knjiga1["stanje"] = info[7]

    print(knjiga1)

a = open("../data/sveKnjige.txt", "r")
for line in a:
    recnik(line)
a.close()

我的文件如下:

Viliam Sekspir|Hamlet|1600|3214569879878|drama|6500|60|true|
Dragoslav Mihajlovic|Kad su cvetale tikve|1968|3332221115554|drama|3000|20|true|
Fjodor Dostojevski|Zlocin i kazna|1866|9788897572657|roman|4500|50|true|
Dostojevski|Ana|1995|3214569874563|triler|321|22|true|

此代码有效,但也会显示此错误'列表索引超出范围'我找不到问题。请帮忙。

2 个答案:

答案 0 :(得分:0)

此代码适用于我的机器。您确定您的输入文件实际上是您在此处发布的内容吗?

答案 1 :(得分:0)

也为我工作。 我试图挑起错误,我不得不添加一个只有“|”的最后一行输入文件字符使其失败。

也许你有一些字符不正确的行(在输入文件中)。尝试在每个循环中打印信息的内容。