当前位置: 代码迷 >> python >> python程序不读取文本文件,也不将单词放入列表中
  详细解决方案

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

热度:80   发布时间:2023-06-19 09:13:31.0

我希望程序读取文本文件并将每个单词放入列表中,这是我编写的代码:

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行。 但是当我在python Shell中键入l?sFil()时,我只会得到以下信息:[]

您的代码有很多问题,但最值得注意的是,您从未从文件infil读取过信息。 相反,您创建一个空列表并对该列表进行切片,因此它仍然是空的:

lista=[]
lista = lista[4:]

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

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

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]