2017-09-28 1 views
0

Ich ziehe Daten von einem Rally-Server und möchte sie in eine CSV-Datei schreiben und Snapshots erstellen. ich die Datei erschaffe mit:Abgrenzen einer von Python Script erstellten CSV-Datei

orig_stdout = sys.stdout 
timestr = time.strftime("%m-%d-%Y") 
f = open(timestr+'FileName.csv', 'w') 
sys.stdout = f 

#all of the setup and functions 

sys.stdout = orig_stdout 
f.close() 

Der Ausgang I Datei schreibe kommt aus:

for item in response: 
    print("%s, %s, %s, %s" % (item.Attribute1, item.Attribute2, item.Attribute3, item.Attribute4)) 

Das Problem ist, dass die Saiten gelegentlich schon in ihm ein Komma haben. Dies gilt für jeden üblichen Charakter. Ich möchte die Kommas in den Strings nicht ersetzen.

Gibt es einen besonderen Charakter, den ich, dass eine Excel-CSV-Datei korrekt in Spalten aufteilen würde erkennen und in der Lage verwenden kann, oder kann ich sagen, irgendwie die Datei mit einem mehr Zeichen zu begrenzen, wie „,,“

+0

Haben Sie sich das 'csv' Modul angeschaut? –

+0

Oh, ich fühle mich jetzt dumm; Ich bin neu bei Python (ich arbeite hauptsächlich mit SQL oder Tools wie Tableau). Meine anfängliche Suche nach einer Antwort brachte das csv-Modul nicht zum Vorschein, aber ich hätte vermuten können, dass es eines gab. Danke für die Hilfe. – LlyfrTaliesin

+0

Ein Hinweis, wenn Sie mit Python noch nicht vertraut sind: Sys.stdout nicht in eine Datei umleiten, nur um print zu verwenden. Verwenden Sie stattdessen einen Ansatz wie 'mit Öffnen ('file.csv', 'w') als out: out.write ('text')' – MrTrustworthy

Antwort

2

Python hat eine integrierte CSV-Module, die verschiedene Formate (wie Excel) handhaben können und können spezielle Optionen (z. B. Escaping) automatisch für Sie behandeln.

Die Writer object from the CSV module klingt wie, was Sie suchen.

Verwandte Themen