我希望程序读取文本文件并将每个单词放在列表中,这是我编写的代码:
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()时,我只能得到:[]
答案 0 :(得分:0)
您的代码存在许多问题,但最明显的是您从未从文件infil
中读取。相反,您创建一个空列表并在该列表上取一个切片,因此它仍为空:
lista=[]
lista = lista[4:]
无论如何,你应该看一下CSV模块,它可以处理你读取分隔文本文件(用逗号或斜线分隔)。
答案 1 :(得分:0)
这部分代码看起来很可疑:
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]