80 votes

Convertir une chaîne Python normale en chaîne brute

J'ai une chaîne s , son contenu est variable. J'aimerais en faire une chaîne brute. Comment dois-je procéder?

Quelque chose de similaire à la méthode r''

83voto

Jolly1234 Points 126

Je crois que ce que vous recherchez est la fonction str.encode("string-escape"). Par exemple, si vous avez une variable que vous voulez « chaîne brute » :

 a = '\x89'
a.encode('unicode_escape')
'\\x89'

Remarque : utilisez string-escape pour python 2.x et les versions antérieures

Je cherchais une solution similaire et j'ai trouvé la solution via: coulée de cordes brutes python

67voto

Karl Knechtel Points 24349

Les chaînes brutes ne sont pas un autre type de chaîne . Il s'agit d'une manière différente de décrire une chaîne dans votre code source. Une fois la chaîne créée, elle est ce qu'elle est.

33voto

slashCoder Points 58

Étant donné que les chaînes en Python sont immuables, vous ne pouvez pas "faire" quelque chose de différent. Vous pouvez cependant créer une nouvelle chaîne brute à partir de s , comme ceci :

raw_s = r'{}'.format(s)

21voto

IfLoop Points 59461

les chaînes brutes ne s'appliquent qu'aux littéraux de chaîne. ils existent afin que vous puissiez exprimer plus facilement des chaînes qui seraient modifiées par le traitement de séquence d'échappement. Ceci est particulièrement utile lors de l'écriture d'expressions régulières ou d'autres formes de code dans des littéraux de chaîne. si vous voulez une chaîne unicode sans traitement d'échappement, préfixez-la simplement avec ur , comme ur'somestring' .

13voto

dheinz Points 440

À partir de Python 3.6, vous pouvez utiliser ce qui suit (similaire à @slashCoder) :

 def to_raw(string):
    return fr"{string}"

my_dir ="C:\data\projects"
to_raw(my_dir)

donne 'C:\\data\\projects' . Je l'utilise sur une machine Windows 10 pour passer des répertoires aux fonctions.

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