python程序不读取文本文件,也不将单词放入lis中

2024-05-28 19:57:02 发布

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

我想让程序读取一个文本文件,并将每个单词放入一个列表中,下面是我编写的代码:

class Teater(object):
    def__init__(self, namn, AntalPlatser, VuxenBiljettpris, 
            PensionärBiljettpris, BarnBiljettpris, 
            vuxen=0, pansionär=0, barn=0):

        self.namn=namn
        self.AntalPlatser=AntalPlatser
        self.VuxenBiljettpris=VuxenBiljettpris
        self.PensionärBiljettpris=PensionärBiljettpris
        self.BarnBiljettpris=BarnBiljettpris
        self.vuxen=vuxen
        self.barn=barn
        self.pansionär=pansionär


def teaterLista():
    infil = open("teatrar.txt", "r", encoding="utf8")
    lista=[]
    lista = lista[4:]
    for rad in lista:
        splitList=rad.split("/")
        namn=splitlist[0]
        AntalPlatser=splitlist[1]
        VuxenBiljettpris=splitlist[2]
        PensionärBiljettpris=splitlist[3]
        BarnBiljettpris=splitlist[4]
        nyTeater = Teater(
            namn, 
            AntalPlatser, 
            VuxenBiljettpris, 
            PensionärBiljettpris,
            BarnBiljettpris)
        lista.append(nyTeater)
    return lista

我的文本文件如下所示:

Såda Teaterbiljetter
TeaternsNamn/Antal platser i salongen/Vuxenbiljettpris/Pensionärbiljettpris/Barnbiljettpris
------------------------------------------------------------------------------------- 

SodraTeatern/414/330/260/200 

Dramaten/770/390/350/100 

ChinaTeatern/1230/395/300/250

我不想打印文本文件的前4行。但是当我在pythonshell中键入läsFil()时,我只得到以下结果:[]


Tags: selfdef文本文件listapensionsplitlistnamnvuxen
2条回答

这部分代码看起来非常可疑:

infil = open("teatrar.txt", "r", encoding="utf8")  # not used after.
lista=[]
lista = lista[4:]  # does nothing since lista is empty
for rad in lista:

你可能是说:

infil = open("teatrar.txt", "r", encoding="utf8")
lista=[]
for rad in infil:

那么

namn=splitlist[0]
AntalPlatser=splitlist[1]
VuxenBiljettpris=splitlist[2]
PensionärBiljettpris=splitlist[3]
BarnBiljettpris=splitlist[4]

最好写成

namn, AntalPlatser, VuxenBiljettpris, PensionärBiljettpris,  BarnBiljettpris =  splitlist[:5]

您的代码有很多问题,但最明显的是您从未读取过文件infil。而是创建一个空列表,并在该列表上取一个片段,因此它仍然是空的:

lista=[]
lista = lista[4:]

无论如何,您应该看看CSV模块,它可以为您处理分隔文本文件的读取(无论是用逗号还是斜杠分隔)。你知道吗

相关问题 更多 >

    热门问题