利用类的新功能。具有多个数据输入的类
如果我有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 2012-02-15 23:34:25
您可以在填充后告诉我们您想要对数据做什么吗?什么是大局,数据将在以后如何使用?你的数据结构很可能是错误的,所以如何解析数据的问题对你无能为力。 – Irfy 2012-02-15 23:43:44
不确定你想用'set_f0'做什么,因为你在'for file1'循环的每一次迭代中覆盖'f0'。请解释你正在尝试做什么。 – Edwin 2012-02-16 00:08:20