Python如何从源自txt文件的列表中创建类?

时间:2017-12-12 15:24:59

标签: python list class

我有一个包含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对这些瑞典字母的效果并不好)

我能做些什么来形成像我想要的课程?

1 个答案:

答案 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))