2017-10-19 60 views
0

我有以下代码:如何导入和书写文本中的循环

dat11=np.genfromtxt('errors11.txt') 
dat12=np.genfromtxt('errors12.txt') 
dat13=np.genfromtxt('errors13.txt') 
dat22=np.genfromtxt('errors22.txt') 
dat23=np.genfromtxt('errors23.txt') 
dat33=np.genfromtxt('errors33.txt') 

zip(dat11,dat12,dat13,dat22,dat23,dat33) 
import csv 
with open('Allerrors.txt', "w+") as output: 
    writer = csv.writer(output, delimiter='\t') 
    writer.writerows(zip(dat11,dat12,dat13,dat22,dat23,dat33)) 
quit 

这里每个“errorsxy.txt”文件包括在一列数。通过这个程序,我创建了'Allerrors.txt'文件,所有这些列都与其他列相邻。我需要用for循环(或任何其他类型的循环)来做同样的事情,因为我实际上拥有更多的文件,而且我无法手动完成。但我不知道如何用循环写这些不同的datxy。我试图(为代码的第一部分)具有:

for x in range(1,Nbin+1): 
    for y in range(1,Nbin+1): 
     'dat'+str(x)+str(y)=np.genfromtxt('errors'+str(x)+str(y)+'.txt') 

但当然,我得到以下错误:

SyntaxError: can't assign to operator 

我明白为什么我得到这个错误,但我找不到任何其他写作方式。另外,我不知道如何编写代码的第二部分。 我正在使用Python 2.7 任何人都可以帮助我?

回答

0

您可以将每个读入文件附加到列表中,然后在for循环运行后压缩并打印列表,而不是为每个数据文件分别创建变量。

errorfiles = [] 
for x in range(1,Nbin+1): 
    for y in range(1,Nbin+1): 
     dat=np.genfromtxt('errors'+str(x)+str(y)+'.txt’) 
     errorfiles.append(dat)