我有一个包含2行文字的txt文件。我希望这个文本文件的每一行成为一个类。我已经将每一行变成了一个列表,我希望该列表的每个元素都成为一个类的一部分。
我的文本文件如下所示。
VardagsrumsTV /Pengarärinteallt / Svt 1/4
KöksTv/音乐是生活/ TV3 / 1
我有另一个应该读取此文件并为每行创建一个类的文件。那个程序看起来像这样。
class TV_apparat(object):
def __init__(self, name, program, kanal, volym):
self.name=name
self.program=program
self.kanal=kanal
self.volym=volym
def __repr__(self):
return "%s: \n Tv-program: %s \n Kanal: %s \n Ljudvolymen: %s " % (self.name, self.program, self.kanal,self.volym)
filename=open("TVinfo.txt", "r")
Tvinfo=filename.read()
filename.close()
Tvinfo = [line.split("/") for line in Tvinfo.split("\n")]
print (Tvinfo)
tvList=[]
for rad in Tvinfo:
tvList.append(TV_apparat(rad[0],rad[1],rad[2],int(rad[3])))
break
TVclasses = dict([(TV, TV_apparat(name)) for TVs in tvList])
print (TVclasses)
我想要的是每一行成为TV_apparat的类对象。
所以我想要一个名为VardagsrumsTV的班级,名字= VardagsrumsTV,program =Pengarärinteallt,kanal = Svt 1和volym = 4 一个名字=KöksTv的课程,程序=音乐就是生命,kanal = TV3和volym = 1
到目前为止,我从中得到的是这个 [[''VardagsrumsTV','Pengarärinteallt','Svt 1','4'],['KöksTv','Music is life','TV3','1'],['' ]
(UTF-8对这些瑞典字母的效果并不好)
我能做些什么来形成像我想要的课程?
答案 0 :(得分:0)
最简单的方法是在__init__()
方法中移动行解析逻辑。
这是一个例子:
class TV_apparat(object):
def __init__(self, line):
self.name, self.program, self.kanal, self.volym = line.strip().split("/")
def __repr__(self):
return "%s: \n Tv-program: %s \n Kanal: %s \n Ljudvolymen: %s " % (self.name, self.program, self.kanal,self.volym)
filename = "TVinfo.txt"
tvList=[]
with open(filename, 'r') as f:
for line in f:
if not line.startswith('\n'):
tvList.append(TV_apparat(line))