Comment écrire un «onglet» en Python?

127

Disons que j'ai un fichier. Comment écrire "bonjour" TAB "alex"?

TIMEX
la source
6
tab implique '\ t'
Pratik

Réponses:

154

Voici le code:

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

L' \tintérieur de la chaîne est la séquence d'échappement pour la tabulation horizontale.

Simone
la source
5
L' utilisation print "a\tb"me donne a (8 spaces)bdans le cmdsur Windows. Pourquoi imprime-t-il 8 espaces au lieu du caractère de tabulation.
Iulian Onofrei
Que vous attendiez-vous d'autre?
Simone
8
À affichera (tab character)b
Iulian Onofrei
@IulianOnofrei Un caractère de tabulation est un caractère non imprimable, également appelé espace blanc. Vous ne voyez rien lorsque vous appuyez sur la touche Tab. Il déplace simplement le texte d'un nombre d'espaces par défaut. Peut-être que vous pouvez dessiner en caractères ce que vous voulez faire apparaître. Est-ce ->?
Rick Henderson
4
@RickHenderson Ce n'est pas vrai, un caractère de tabulation n'est pas seulement un certain nombre d'espaces. Peut-être que votre éditeur est configuré pour insérer des espaces en appuyant sur la tabulation. "" est un onglet "" est un espace. Vous ne voyez peut-être pas la différence ici, mais ouvrez Word / Libre et vous verrez la différence.
Sativa
27

Le manuel de référence Python comprend plusieurs littéraux de chaîne qui peuvent être utilisés dans une chaîne. Ces séquences spéciales de caractères sont remplacées par la signification voulue de la séquence d'échappement.

Voici un tableau de certaines des séquences d'échappement les plus utiles et une description de leur sortie.

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)

Exemple de base

Si je voulais imprimer des points de données séparés par un espace de tabulation, je pourrais imprimer cette chaîne.

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

Retour

0    12    24

Exemple de listes

Voici un autre exemple où nous imprimons les éléments de la liste et nous voulons séparer les éléments par une tabulation.

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

Retour

0    12    24

Chaînes brutes

Notez que les chaînes brutes (une chaîne qui inclut un préfixe "r"), les chaînes littérales seront ignorées. Cela permet à ces séquences spéciales de caractères d'être incluses dans des chaînes sans être modifiées.

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

Retour

0\t12\t24

Ce qui peut être une sortie indésirable

Longueurs de chaîne

Il convient également de noter que les littéraux de chaîne ne comportent qu'un seul caractère.

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

Retour

7

La chaîne brute a une longueur de 9.

CodeCupboard
la source
J'ai besoin d'un espace entre mes éléments d'environ la moitié \t. Comment puis-je faire ceci?
seralouk le
25

Vous pouvez utiliser \ t dans une chaîne littérale:

"hello\talex"

Knio
la source
14

C'est généralement \tdans les interfaces de ligne de commande, qui convertissent le \tcaractère en caractère de tabulation d'espaces.

Par exemple, hello\talex-> hello--->alex.

Darbio
la source
9

Comme cela n'a été mentionné dans aucune réponse, juste au cas où vous voudriez aligner et espacer votre texte, vous pouvez utiliser les fonctionnalités de format de chaîne. (ci-dessus python 2.5) Il \ts'agit bien sûr d' un jeton TAB alors que la méthode décrite génère des espaces.

Exemple:

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

Un autre exemple, aligné à gauche:

print("{0:<10} {1:<10} {2:<10}".format(1.0, 2.2, 4.4))
>1.0        2.2        4.4 
user1767754
la source
comment donner un caractère de tabulation pour imprimer un élément de tableau en 3 dimensions comme 0 12 24 comme 3 lignes?
priya raj
Ajouté à la réponse
user1767754
0

Voici quelques moyens plus exotiques de Python 3 pour obtenir "hello" TAB "alex" (testé avec 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"

En fait, au lieu d'utiliser une séquence d'échappement, il est possible d'insérer un symbole de tabulation directement dans la chaîne littérale. Voici le code avec un caractère de tabulation à copier et à essayer:

"hello alex"

Si l'onglet dans la chaîne ci-dessus ne sera perdu nulle part pendant la copie de la chaîne, alors "print (repr (<string from above>)" devrait afficher 'hello \ talex'.

Voir la documentation Python respective pour référence.

user2273896
la source