클래스를 처음 사용하는 경우. 나는 다음과 같은 3 개 개의 파일이있는 경우여러 데이터 입력이있는 클래스
:
#test1.txt:
a 100 xxx
b 200 fff
a 200 xxx
c 500 fff
a 200 www
test2.txt:
123 msg1 data2
123 msg1 data3
125 msg1 data2
123 msg2 data5
128 msg3 data2
test3.txt:
jan 5 79
jan 5 80
dec 5 79
dec 12 79
feb 5 80
을하고 파일을 반복하는 동안 1 개 클래스의 모든 데이터를 채우려, 이것은 올바른 접근 방식인가?
단일 매개 변수를 기반으로 덮어 쓰지 않고 추출하지 않고 모든 데이터를 채우는 방법을 찾는 데 어려움이 있습니다.
class DInput:
def set_f0(self, f0):
self.f0=f0
self.f1,f2,f3,f4,f5,f6,f7,f8=[]
def add_f1(self, f1):
self.f1.append(f1)
def add_f2(self, f2):
self.f2.append(f2)
def add_f3(self, f3):
self.f3.append(f3)
def add_f4(self, f4):
self.f4.append(f4)
def add_f5(self, f5):
self.f5.append(f5)
def add_f6(self, f6):
self.f6.append(f6)
def add_f7(self, f7):
self.f7.append(f7)
def add_f8(self, f8):
self.f8.append(f8)
call = DInput()
with open('test1.txt','r') as file1, open('test2.txt','r') as file2, open('test3.txt','r') as file3:
for line in file1:
f0,f1,f2=line.split()
call.set_f0(f0)
call.add_f1(f1)
call.add_f2(f2)
for line in file2:
f3,f4,f5=line.split()
call.add_f3(f3)
call.add_f4(f4)
call.add_f5(f5)
for line in file3:
f6,f7,f8=line.split()
call.add_f6(f6)
call.add_f7(f7)
call.add_f8(f8)
'self.f1, F2, F3, F4, f5, f6, f7, f8 = []' 그럴 수 없습니다. 객체 변수로'f1' 만 설정합니다. 나머지는 지역입니다. – Irfy
데이터를 채운 후 데이터로 수행하려는 작업을 알려주시겠습니까? 큰 그림은 무엇입니까? 데이터는 나중에 어떻게 사용됩니까? 데이터 구조가 잘못되었을 가능성이 높으므로 데이터를 구문 분석하는 방법에 대한 질문은 도움이되지 않습니다. – Irfy
'for_file1' 루프의 모든 반복에서'f0'을 덮어 쓰고 있기 때문에'set_f0'로 무엇을 하려는지 확실하지 않습니다. 당신이하려는 것을 설명하십시오. – Edwin