Antworten:
Dies ist der Code:
f = open(filename, 'w')
f.write("hello\talex")
Das \t
Innere der Zeichenfolge ist die Escape-Sequenz für die horizontale Tabelle.
print "a\tb"
gibt mir a (8 spaces)b
in der cmd
on Windows
. Warum werden 8 Leerzeichen anstelle des Tabulatorzeichens gedruckt?
a (tab character)b
Das Python- Referenzhandbuch enthält mehrere Zeichenfolgenliterale, die in einer Zeichenfolge verwendet werden können. Diese speziellen Zeichenfolgen werden durch die beabsichtigte Bedeutung der Escape-Folge ersetzt.
Hier ist eine Tabelle mit einigen der nützlicheren Escape-Sequenzen und eine Beschreibung der Ausgabe von ihnen.
Escape Sequence Meaning
\t Tab
\\ Inserts a back slash (\)
\' Inserts a single quote (')
\" Inserts a double quote (")
\n Inserts a ASCII Linefeed (a new line)
Grundlegendes Beispiel
Wenn ich einige Datenpunkte drucken wollte, die durch einen Tabulator getrennt sind, könnte ich diese Zeichenfolge drucken.
DataString = "0\t12\t24"
print (DataString)
Kehrt zurück
0 12 24
Beispiel für Listen
Hier ist ein weiteres Beispiel, in dem wir die Elemente der Liste drucken und die Elemente durch eine TAB trennen möchten.
DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))
Kehrt zurück
0 12 24
Rohe Saiten
Beachten Sie, dass rohe Zeichenfolgen (eine Zeichenfolge mit dem Präfix "r") und Zeichenfolgenliterale ignoriert werden. Dadurch können diese speziellen Zeichenfolgen unverändert in Zeichenfolgen eingefügt werden.
DataString = r"0\t12\t24"
print (DataString)
Kehrt zurück
0\t12\t24
Welches vielleicht eine unerwünschte Ausgabe
Stringlängen
Es ist auch zu beachten, dass Zeichenfolgenliterale nur ein Zeichen lang sind.
DataString = "0\t12\t24"
print (len(DataString))
Kehrt zurück
7
Die rohe Saite hat eine Länge von 9.
\t
. Wie kann ich das machen?
Da dies in keiner Antwort erwähnt wurde, können Sie die Funktionen für das Zeichenfolgenformat verwenden, nur für den Fall, dass Sie Ihren Text ausrichten und platzieren möchten. (über Python 2.5) Natürlich \t
handelt es sich tatsächlich um ein TAB-Token, während die beschriebene Methode Leerzeichen generiert.
Beispiel:
print "{0:30} {1}".format("hi", "yes")
> hi yes
Ein weiteres Beispiel, linksbündig:
print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0 2.2 4.4
Hier sind einige exotischere Python 3-Möglichkeiten, um "Hallo" TAB "alex" zu erhalten (getestet mit Python 3.6.10):
"hello\N{TAB}alex"
"hello\N{tab}alex"
"hello\N{TaB}alex"
"hello\N{HT}alex"
"hello\N{CHARACTER TABULATION}alex"
"hello\N{HORIZONTAL TABULATION}alex"
"hello\x09alex"
"hello\u0009alex"
"hello\U00000009alex"
Anstatt eine Escape-Sequenz zu verwenden, ist es tatsächlich möglich, ein Tabulator-Symbol direkt in das String-Literal einzufügen. Hier ist der Code mit einem Tabellierungszeichen zum Kopieren und Ausprobieren:
"hello alex"
Wenn die Registerkarte in der obigen Zeichenfolge beim Kopieren der Zeichenfolge nirgendwo verloren geht, sollte "print (repr (<Zeichenfolge von oben>)" "" Hallo \ Talex "ausgeben.
Weitere Informationen finden Sie in der jeweiligen Python-Dokumentation .