问题描述
我希望程序读取文本文件并将每个单词放入列表中,这是我编写的代码:
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()时,我只会得到以下信息:[]
1楼
您的代码有很多问题,但最值得注意的是,您从未从文件infil
读取过信息。
相反,您创建一个空列表并对该列表进行切片,因此它仍然是空的:
lista=[]
lista = lista[4:]
无论如何,您应该看看模块,该模块可以为您处理定界文本文件的读取(无论是用逗号还是斜杠分隔)。
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]