2013-02-19 13 views
5

Come faccio a stampare la rappresentazione sfuggito di una stringa, per esempio se ho:Stampa sfuggito rappresentazione di una str

s = "String:\tA" 

desidero uscita:

String:\tA 

sullo schermo, invece di

String: A 

La funzione equivalente in java è:

String xy = org.apache.commons.lang.StringEscapeUtils.escapeJava(yourString); 
System.out.println(xy); 

da Apache Commons Lang

+0

[Questa domanda] (http://stackoverflow.com/questions/4202538/python-escape-special-characters) può essere di interesse per tu, anche se la soluzione sfugge un po 'più di quello che vuoi .. – m01

risposta

16

si desidera codificare la stringa con il string_escape codec:

print s.encode('string_escape') 

oppure è possibile utilizzare la repr() function, che si trasformerà una stringa in è python rappresentazione letterale comprese le citazioni:

print repr(s) 

Dimostrazione:

>>> s = "String:\tA" 
>>> print s.encode('string_escape') 
String:\tA 
>>> print repr(s) 
'String:\tA' 

In Python 3, devi essere alla ricerca per il codec unicode_escape invece:

print(s.encode('unicode_escape')) 

che stamperà un valore byte. A sua volta che torna in un valore unicode, appena decodificare da ASCII:

>>> s = "String:\tA" 
>>> print(s.encode('unicode_escape')) 
b'String:\\tA' 
>>> print(s.encode('unicode_escape').decode('ASCII')) 
String:\tA 
+0

Voglio solo ripetere che è pulito. Come uno che lavora quasi interamente in ASCII, non penso di codificare molto spesso - (anche se sto cercando di essere più consapevole di quella roba). - Sfortunatamente, ora che sei la risposta migliore, la mia probabilmente smetterà di alzare i voti ;-). – mgilson

+0

@mgilson I rispondo alla risposta di Martjin perché non ero a conoscenza dell'esistenza di 'string_escape' e della risposta di mgilson perché sono di buon umore :) – eyquem

8

è possibile utilizzare repr:

print repr(s) 

demo

>>> s = "String:\tA" 
>>> print repr(s) 
'String:\tA' 

Questo vi darà le citazioni - ma si può tagliare quelle via facilmente:

>>> print repr(s)[1:-1] 
String:\tA 
+1

Oppure puoi codificare in 'string_escape'. :-) –

+1

@MartijnPieters - Mai visto prima. pulito. +1 alla tua risposta :) – mgilson

0

Dare print repr(string) un colpo

0

Come sempre, la sua facile in pitone:

print(repr(s)) 
0

print utilizza str, che elabora fughe. Vuoi repr.

>>> a = "Hello\tbye\n" 
>>> print str(a) 
Hello bye 

>>> print repr(a) 
'Hello\tbye\n' 
Problemi correlati