124 votes

Comment écrire des littéraux de chaîne en python sans avoir à les échapper?

Existe-t-il un moyen de déclarer une variable de chaîne en python de telle sorte que tout ce qu'elle contient soit automatiquement échappé ou ait sa valeur de caractère littérale?

Je ne demande pas comment échapper aux guillemets avec des barres obliques, c'est évident. Ce que je demande, c'est un moyen général de tout faire dans une chaîne littérale afin que je n'aie pas à parcourir manuellement et à échapper à tout pour les très grandes chaînes. Quelqu'un connait une solution ? Merci!

160voto

SilentGhost Points 79627

Littéraux de chaîne bruts :

 >>> r'abc\dev\t'
'abc\\dev\\t'

84voto

Greg Hewgill Points 356191

Si vous utilisez des chaînes très volumineuses, en particulier des chaînes multilignes, tenez compte de la syntaxe des guillemets triples :

 a = r"""This is a multiline string
with more than one line
in the source code."""

2voto

Jeff Hykin Points 528

(En supposant que vous n'êtes pas obligé de saisir la chaîne directement dans le code Python)

pour contourner le problème signalé par Andrew Dalke, saisissez simplement la chaîne littérale dans un fichier texte, puis utilisez-la ;

 input_ = '/directory_of_text_file/your_text_file.txt' 
input_open   = open(input_,'r+')
input_string = input_open.read()

print input_string

Cela imprimera le texte littéral de tout ce qui se trouve dans le fichier texte, même s'il l'est ;

  '   ''' """  " \

Pas amusant ou optimal, mais peut être utile, surtout si vous avez 3 pages de code qui auraient nécessité un échappement de caractères.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X