Warum eine Schleife meine Datei überschreiben, anstatt nach dem Text zu schreiben?

i = 1 # keep track of file number
directory = '/some/directory/'


for i in range(1, 5170): #number of files in directory
    filename = directory + 'D' + str(i) + '.txt'
    input = open(filename)
    output = open('output.txt', 'w')
    input.readline() #ignore first line
    for g in range(0, 7): #write next seven lines to output.txt
        output.write(input.readline())

    output.write('\n') #add newline to avoid mess
    output.close()
    input.close()
    i = i + 1

Ich habe diesen Code und ich versuche, eine Datei zu bekommen und sie in output.txt umzuschreiben, aber wenn ich die nächste Datei anhängen möchte, überschreibt mein Code die ältere Datei, die angehängt wurde. Im Ergebnis, wenn der Code vollständig ist, habe ich so etwas:

dataA[5169]=26
dataB[5169]=0
dataC[5169]=y
dataD[5169]='something'
dataE[5169]=x
data_date[5169]=2012.06.02

Anstelle von Daten von Dateien 0 bis 5169. Irgendwelche Tipps, wie man es repariert?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage