mehrere Zeilen in einer for-Schleife block in python
Ich habe eine sehr grundlegende Frage in python. Ich möchte teilen Sie die Gegenstände in der folgenden Liste und drucken Sie es in eine text Datei.
import pandas as pd
s = ['"9-6": 1', ' "15-4": 1', ' "12-3": 1', ' "8-4": 1', ' "8-5": 1', ' "8-1": 1']
print type(s)
for i in s:
j = i.split(',')
with open("out.txt","w") as text_file:
text_file.write("{}".format(j))
Jedoch meinen code druckt nur den letzten Wert. Klar, es ist nicht unter die letzten Zeilen innerhalb der for-Schleife block. Kann mir jemand zeigen, wo mache ich falsch? Danke!
- Ich verstehe nicht, warum Sie das tun
j = i.split(',')
Sie sind, Durchlaufen Sie jede Zeichenfolge im array und dann die Teilung jeder string in Teilstrings, die durch Kommas getrennt, aber es gibt keine Komma in den String.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie nicht Anhängen der Werte. Sie neu schreiben, jedes mal. Versuchen Sie es so:
Hier, ich Ersetze "w" von "a+".
Vollständige code:
Jedes mal, wenn Sie öffnen out.txt mit dem 'w' - option, ist es beim löschen, dass die Datei vollständig, bevor Sie überhaupt etwas schreiben. Sollte man die with-Anweisung vor dem start der for-Schleife, so dass die Datei nur einmal geöffnet.
Einer jeden iteration deiner for-Schleife, Ihre Rundung, Ihre Dateien Inhalte ie. "Das leeren der Datei". Denn bei Verwendung der öffnen-Modus
w
Python implizit kürzt die Datei, da Sie bereits auf der vorherigen iteration. Dieses Verhalten ist dokumentiert in Python 2.7:Verwenden Sie die option
a+
statt, die hängt an eine Datei. Die Python 2.7-Dokumentation auch Hinweise diese:Was bedeutet, dass diese:
...open('out.txt' 'w')...
werden sollte:
...open('out.txt', 'a')...