2017-10-19 121 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)