Ich analysiere Text aus einer XML-Datei. Parsing funktioniert gut, und ich kann die Ergebnisse vollständig ausdrucken, aber wenn ich versuche, den Text in ein Textdokument zu schreiben, ist alles, was ich in das Dokument bekomme, das letzte Element.Python - Exportiere XML in txt-Datei mit
from bs4 import BeautifulSoup
import urllib.request
import sys
req = urllib.request.urlopen('file:///C:/Users/John/Desktop/Dow%20Jones/compaq%20neg%201.xml')
xml = BeautifulSoup(req, 'xml')
for item in xml.findAll('paragraph'):
sys.stdout = open('CN1.txt', 'w')
print(item.text)
sys.stdout.close()
Was fehlt mir hier?
Das Überschreiben von 'sys.stdout', während es unterstützt wird, ist ... eine ungewöhnliche Wahl. Gibt es einen Grund, warum Sie das Dateihandle nicht unter einem anderen Namen speichern und dann 'f.write()' oder ähnliches verwenden? –
Übrigens gibt es zu dieser Frage nichts XML-spezifisches. Es könnte zum Beispiel vereinfacht werden für 'Item in [" Hallo "," Grausamkeit "," Welt "]:' ohne XML-bezogenen Code überhaupt, und Sie hätten immer noch das gleiche Verhalten (nur die die letzte Zeichenkette, über die Sie in Ihrer Ausgabedatei getippt haben). –
Ich bin brandneu mit der Arbeit mit XML und dem Schreiben von Python. Ich habe mit R ähnlich gemacht, aber nicht mit Python. – John