我有以下代码:
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循环(或任何其他类型的循环)做同样的事情,因为我实际上会有更多的文件,而我不能手动完成。但我不知道如何用一个循环来写这些不同的数据。我尝试(对于代码的第一部分)使用:
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有人能帮我吗?
您可以将每个读入文件附加到列表中,然后在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)