2016-05-05 10 views
0

Ich versuche, ein Programm zu erstellen, das mir erlauben wird, Völker Informationen aufzunehmen und dann in ein XML-Dokument zu schreiben, speichern Sie es, und dann, sobald das Programm erneut ausgeführt wird, es Ich werde dort weitermachen, wo ich aufgehört habe. Alles, was ich gerade bekomme, ist, dass ich dieselbe Zeile immer wieder überschreibe. Es zeigtPython Schreiben in XML und nicht über das Schreiben von Eingabe

<person> 
    <name>Users Name</name> 
</person> 

und das ist es. Ich brauche es

<person> 
    <name>User 1</name> 
</person> 

<person> 
    <name>User 2</name> 
</person> 

So weiter und so weiter zu tun ... Ich arbeite immer noch auf dem Code, aber es ist Sinn nicht auf dem Code zu arbeiten, wenn ich nicht auf sie schreiben kann. Ich habe offen versucht ('Person.xml', '(w, r, a') und noch nichts Mein Code ist My Code

+0

Fügen Sie den Code in die Frage ein. Verwenden Sie keine Bilder dafür. – mzjn

Antwort

1

sollte Ihre Datei in append mode geöffnet werden, wenn Sie etwas darauf schreiben wollen, so dass vorhandene Inhalte doesn nicht ersetzt werden
Sie sollten diese Codezeile ändern:

tree.write(open('person.xml', 'w')) 

mit diesem (Hinweis a statt w):

tree.write(open('person.xml', 'a')) 

r: offene Datei in lesen Modus
w: offene Datei in schreiben Modus
a: Datei öffnen in appen d Modus

1

Sie müssen nur auf die Datei anhängen mit a nicht überschreiben.

with open("your.xml", "a") as f: 
    tree.write(f) 

w kürzt Dateidaten so dass im Grunde Sie Ihre Datei entleeren, bevor Sie schreiben also nur Sie einen Eintrag sehen.

+0

Vielen Dank! Ich habe das anderswo gesehen und ich konnte es nicht herausfinden, aber ich habe es mit deinem Code herausgefunden. Ich danke dir sehr! Du hast mir Tage des Kopfstoßens gerettet! – Hoyt

+0

@Hoyt: Wenn die Antwort Ihr Problem gelöst hat, markieren Sie es als akzeptiert. – mzjn