Python帮助,读写一个txt fi

2024-05-18 07:53:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经把代码的相关部分贴在下面了。在这之前只是加载函数,我很确定没有错误

我收到一个错误

IndexError: list index out of range( "namestaj["Naziv"] = deon[1]")

有人看到什么东西不正常吗

#load furniture from a txt file
def ucitajNamestaj():
    listaNamestaja = open("namestaj.txt", "r").readlines()
    namestaj = []
    for red in listaNamestaja:
        namestaj.append(stringToNamestaj(red))
    return namestaj

#String to Furniture, dictionary
def stringToNamestaj(red):
    namestaj = {}
    deon = red.strip().split("|")
    namestaj["Sifra"] = deon[0]
    namestaj["Naziv"] = deon[1]
    namestaj["Boja"] = deon[2]
    namestaj["Kolicina"] = int(deon[3])
    namestaj["Cena"] = float(deon[4])
    namestaj["Kategorija"] = deon[5]
    namestaj["Dostupan"] = deon[6]
    return namestaj

Tags: 函数代码txtindexreturndef错误red
1条回答
网友
1楼 · 发布于 2024-05-18 07:53:34

首先,尝试提供一个mcve,并确保您正确使用SO代码指令,否则您的问题是不可读的

现在,可能您的文件有一些空行,您不会跳过这些空行,请尝试以下操作:

def ucitajNamestaj(): 
    listaNamestaja = open("namestaj.txt", "r").readlines() 
    namestaj = [] 
    for red in listaNamestaja:
        if red.strip() == "":
            continue
        namestaj.append(stringToNamestaj(red)) 
    return namestaj

def stringToNamestaj(red):
    namestaj = {}
    deon = red.strip().split("|")
    namestaj["Sifra"] = deon[0]
    namestaj["Naziv"] = deon[1]
    namestaj["Boja"] = deon[2]
    namestaj["Kolicina"] = int(deon[3])
    namestaj["Cena"] = float(deon[4])
    namestaj["Kategorija"] = deon[5]
    namestaj["Dostupan"] = deon[6]
    return namestaj

相关问题 更多 >