Wie schreibe ich einen "Tab" in Python?

127

Angenommen, ich habe eine Datei. Wie schreibe ich "Hallo" TAB "Alex"?

TIMEX
quelle
6
Tab impliziert '\ t'
Pratik

Antworten:

154

Dies ist der Code:

f = open(filename, 'w')
f.write("hello\talex")

Das \tInnere der Zeichenfolge ist die Escape-Sequenz für die horizontale Tabelle.

Simone
quelle
5
Verwenden print "a\tb"gibt mir a (8 spaces)bin der cmdon Windows. Warum werden 8 Leerzeichen anstelle des Tabulatorzeichens gedruckt?
Iulian Onofrei
Was haben Sie sonst noch erwartet?
Simone
8
Zur Anzeigea (tab character)b
Iulian Onofrei
@IulianOnofrei Ein Tabulatorzeichen ist ein nicht druckbares Zeichen, das auch als Leerzeichen bezeichnet wird. Sie sehen nichts, wenn Sie die Tabulatortaste drücken. Der Text wird nur um eine Standardanzahl von Leerzeichen verschoben. Vielleicht können Sie Zeichen einzeichnen, was Sie erscheinen möchten. Ist es ->?
Rick Henderson
4
@ RickHenderson Das stimmt nicht, ein Tabulatorzeichen besteht nicht nur aus mehreren Leerzeichen. Möglicherweise ist Ihr Editor so konfiguriert, dass beim Drücken der Tabulatortaste Leerzeichen eingefügt werden. "" ist ein Tab "" ist ein Leerzeichen. Sie können den Unterschied hier nicht sehen, aber öffnen Sie Word / Libre und Sie werden den Unterschied sehen.
Sativa
27

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.

CodeCupboard
quelle
Ich muss einen Abstand zwischen meinen Elementen haben, der ungefähr die Hälfte beträgt \t. Wie kann ich das machen?
Seralouk
25

Sie können \ t in einem Zeichenfolgenliteral verwenden:

"hello\talex"

Knio
quelle
14

Es ist normalerweise \tin Befehlszeilenschnittstellen, die das \tZeichen in das Leerzeichen Tabulatorzeichen konvertieren .

Zum Beispiel hello\talex-> hello--->alex.

Darbio
quelle
9

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 \thandelt 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 
user1767754
quelle
Wie gebe ich ein Tabulatorzeichen, um ein dreidimensionales Array-Element als 0 12 24 als 3 Zeilen zu drucken?
Priya Raj
Zur Antwort
hinzugefügt
0

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 .

user2273896
quelle