2017-10-19 2 views
0

Ich habe den folgenden Code:Wie importieren und Text in einem Schreib für Zyklus

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 

Wo jeder der ‚errorsxy.txt‘ Dateien in einer Spalte von Zahlen besteht. Mit diesem Programm habe ich die Datei "Allerrors.txt" erstellt, in der alle diese Spalten neben den anderen stehen. Ich muss das gleiche mit einem Zyklus (oder einer anderen Art von Schleife) tun, weil ich tatsächlich viel mehr Dateien habe und ich kann es nicht von Hand machen. Aber ich weiß nicht, wie man diese verschiedenen datxy mit einem Zyklus schreibt. Ich habe versucht, (für den ersten Teil des Codes) mit:

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') 

Aber natürlich bekomme ich folgende Fehlermeldung:

SyntaxError: can't assign to operator 

Ich verstehe, warum ich diesen Fehler, aber ich konnte nicht finden jede andere Möglichkeit, es zu schreiben. Außerdem habe ich keine Ahnung, wie ich den zweiten Teil des Codes schreiben soll. Ich verwende Python 2.7 Wer kann mir helfen?

Antwort

0

Statt machen separaten Variablen für jede Datendatei, können Sie jede Lese-in-Datei in eine Liste anhängen, dann zip und drucken Sie die Liste nach der for-Schleife ausgeführt wurde.

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)