Come scrivo una "scheda" in Python?


127

Diciamo che ho un file. Come scrivo "ciao" TAB "alex"?


6
la scheda implica "\ t"
Pratik

Risposte:


154

Questo è il codice:

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

L' \tinterno della stringa è la sequenza di escape per la tabulazione orizzontale.


5
L'utilizzo print "a\tb"mi dà a (8 spaces)bin cmdsu Windows. Perché stampa 8 spazi invece del carattere di tabulazione.
Iulian Onofrei

Cos'altro ti aspettavi?
Simone

8
Da visualizzarea (tab character)b
Iulian Onofrei

@IulianOnofrei Un carattere di tabulazione è un carattere non stampabile, noto anche come spazio bianco. Non vedi nulla quando premi il tasto Tab. Sposta semplicemente il testo di un numero predefinito di spazi. Forse puoi disegnare nei personaggi quello che vuoi che appaia. È ->?
Rick Henderson

4
@RickHenderson Non è vero, un carattere di tabulazione non è solo un numero di spazi. Forse il tuo Editor è configurato per inserire spazi premendo Tab. "" è una tabulazione "" è uno spazio. Potresti non vedere la differenza qui, ma apri Word / Libre e vedrai la differenza.
Sativa

27

Il manuale di riferimento di Python include diversi valori letterali di stringa che possono essere utilizzati in una stringa. Queste sequenze speciali di caratteri vengono sostituite dal significato previsto della sequenza di escape.

Ecco una tabella di alcune delle sequenze di escape più utili e una descrizione dell'output da esse.

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)

Esempio di base

Se volessi stampare alcuni punti dati separati da uno spazio di tabulazione, potrei stampare questa stringa.

DataString = "0\t12\t24"
print (DataString)

ritorna

0    12    24

Esempio per elenchi

Ecco un altro esempio in cui stiamo stampando gli elementi della lista e vogliamo separare gli elementi da un TAB.

DataPoints = [0,12,24]
print (str(DataPoints[0]) + "\t" + str(DataPoints[1]) + "\t" + str(DataPoints[2]))

ritorna

0    12    24

Corde grezze

Notare che le stringhe non elaborate (una stringa che include un prefisso "r"), le stringhe letterali verranno ignorate. Ciò consente a queste sequenze speciali di caratteri di essere incluse nelle stringhe senza essere modificate.

DataString = r"0\t12\t24"
print (DataString)

ritorna

0\t12\t24

Che forse è un'uscita indesiderata

Lunghezze delle stringhe

Va inoltre notato che i letterali stringa sono lunghi solo un carattere.

DataString = "0\t12\t24"
print (len(DataString))

ritorna

7

La stringa grezza ha una lunghezza di 9.


Ho bisogno di uno spazio tra i miei elementi che sia circa la metà di \t. Come posso fare questo?
seralouk

25

Puoi usare \ t in una stringa letterale:

"hello\talex"


14

Di solito è \tnelle interfacce della riga di comando, che convertiranno il carattere \tnel carattere di tabulazione dello spazio bianco.

Ad esempio, hello\talex-> hello--->alex.


9

Poiché non è stato menzionato in nessuna risposta, nel caso in cui desideri allineare e spaziare il testo, puoi utilizzare le funzionalità del formato stringa. (sopra python 2.5) Ovviamente \tè in realtà un token TAB mentre il metodo descritto genera spazi.

Esempio:

print "{0:30} {1}".format("hi", "yes")
> hi                             yes

Un altro esempio, allineato a sinistra:

print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0        2.2        4.4 

come dare un carattere di tabulazione per stampare un elemento di matrice tridimensionale come 0 12 24 come 3 righe?
priya raj

Aggiunto alla risposta
user1767754

0

Ecco alcuni modi più esotici di Python 3 per ottenere "ciao" TAB "alex" (testato con 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"

In realtà, invece di utilizzare una sequenza di escape, è possibile inserire il simbolo di tabulazione direttamente nella stringa letterale. Ecco il codice con un carattere di tabulazione da copiare e provare:

"hello alex"

Se la tabulazione nella stringa sopra non andrà persa durante la copia della stringa allora "print (repr (<string from above>)" dovrebbe stampare 'ciao \ talex'.

Vedere la rispettiva documentazione di Python per riferimento.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.