2017-12-12 1 views
0

2 줄의 텍스트가있는 txt 파일이 있습니다. 이 텍스트 파일의 각 행을 클래스로 만듭니다. 각 행을 목록으로 만들었고 그 목록의 각 요소가 클래스의 일부가되기를 원합니다.Python 어떻게 txt 파일에서 파생 된 목록에서 클래스를 만들 수 있습니까?

내 텍스트 파일은 다음과 같습니다.

VardagsrumsTV/Pengar AR INTE allt/SVT 1/4
KöksTv/음악 I이 파일을 읽고 각 행에 대해 클래스를 생성하는데 다른 파일 그게 전부가 생활/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, 프로그램 = Pengar AR INTE allt, Kanal합니다 = SVT 1 volym = 4 와 이름을 가진 하나 개의 클래스 = KöksTv이 프로그램은 = 음악 인생, Kanal합니다 = TV3와 volym = 1

내가 지금부터 무엇을 얻을 수 있는가? [[ 'VardagsrumsTV', 'Pengar är inte allt', 'Svt 1', 4 '], ['KöksTv ', , 'TV3' '음악은 삶이다' '1'], [ '']]

(이 스웨덴어 문자로 매우 잘 작동 UTF-8 밤은) 내가 클래스 모양 얻을 수행 할 수있는

나는 그들을 원해?

답변

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)) 
관련 문제