2016-11-24 3 views
-3

ich drucke meine Ausgabe in einer Datei mit diesem Befehl:Wie mit Anhang drucken, benutzerdefinierte Trennzeichen und unterdrücken Leerzeichen in Python 2?

print >> outfile, columns2[0],"\t",columns2[1],"\t",columns2[2] 

Mein Problem ist, dass ich einen „Raum“ am Ende des Inhalts jeder Spalte habe.

Ich kenne einige Male kann es mit sep gelöst werden:

print('foo', 'bar', sep='') 

Aber ich weiß nicht, wie sep zu implementieren, während in einer Datei mit meinem obigen Befehl schreiben:

print >> outfile 
+1

Warum schreibst du nicht in die Datei? –

+0

Ich denke, er spricht über den Platz an jedem Komma eingefügt, nicht die NL. – totoro

+0

Fragen Sie nach Python 3 oder 2? Wenn Python 3, könnte dies geschlossen werden-als-Duplikat von [Python-Syntax Hilfe sep = "", '\ t'] (http://stackoverflow.com/questions/22116482/python-syntax-help-sep-t) – smci

Antwort

0

Die print() Funktion kann zum Drucken in jede Datei verwendet werden, nicht nur sys.stdout. Versuchen:

from __future__ import print_function 

print(*columns2, sep="\t", file=outfile) 

Aus der Dokumentation auf print():

print(*objects, sep=' ', end='\n', file=sys.stdout)

The file argument must be an object with a write(string) method; if it is not present or None , sys.stdout will be used.

0

Sie Datei write Methode verwenden können, Schreibmethode nicht am Ende die zusätzliche Newline haben. Empfehlen Zeichenfolge zu verwenden Methode über + Join-Operator als auch

outfile.write('\t'.join(column2)) 
# add + '\n' if need the new line 
# use column2[:2] if you have more items in list and only need slice of them 
+0

Ihr Join-Befehl ist sehr interessant, aber ich erhalte den folgenden Fehler: "Name 'Join' ist nicht definiert" – Pol

+0

Sollte nicht der Fehler haben, habe ich getestet, arbeiten, stellen Sie sicher, dass Sie genau '\ t'.join' haben, Doppel-Check ''\ t'.vor dem Beitritt – Skycc

+0

Sie hatten Recht, ich schrieb ein", "statt ein". " – Pol

2

Der Raum kommt von der Verwendung der Kommas in print (Python 2.7?).

print >> outfile, '\t'.join(columns2) 

Sollte dieses Problem beheben.

+0

Funktioniert perfekt, danke – Pol

Verwandte Themen