Ho letto una stringa da una casella di testo della GUI inserita dall'utente e l'ho elaborata tramite pandoc. La stringa contiene direttive in lattice per la matematica che hanno caratteri rovesciati. Voglio inviare la stringa come stringa raw a pandoc per l'elaborazione. Ma qualcosa come "\ theta" diventa una scheda e "heta".python: come convertire la stringa letterale in stringa raw letterale?
Come posso convertire un valore letterale stringa che contiene caratteri rovesciati in una stringa non elaborata ...?
Edit:
Grazie develerx, volando pecore e unutbu. Ma nessuna delle soluzioni sembra aiutarmi. Il motivo è che ci sono altri caratteri backslashed che non hanno alcun effetto in python ma che hanno un significato in latex.
Ad esempio "\ lambda". Tutti i metodi proposti prodotti
\\lambda
, che non passa attraverso l'elaborazione in lattice - dovrebbe rimanere come \ lambda.
Un'altra modifica:
se posso ottenere questo lavoro, credo che dovrei essere attraverso. @ Mark: Tutti e tre i metodi danno risposte che non desidero.
a='\nu + \lambda + \theta';
b=a.replace(r"\\",r"\\\\");
c='%r' %a;
d=a.encode('string_escape');
print a
u + \lambda + heta
print b
u + \lambda + heta
print c
'\nu + \\lambda + \theta'
print d
\nu + \\lambda + \theta
Sei sicuro la stringa contiene davvero '\\ lambda' e non è solo il raddoppio quando lo si stampa? Prova a stampare 'mystring [1:]' e vedi se c'è ancora un '\' in esso. Ci dovrebbe essere una certa consistenza - se '\ t' si sta convertendo in tab allora' \\' dovrebbe convertirsi in '\'. –
Puoi pubblicare il 'repr' della stringa come ricevuto dalla casella di testo della GUI e mostrare il codice che stai utilizzando per elaborarlo tramite pandoc? – unutbu
Il tuo test non è realistico. Non lo ottieni da una casella di testo, lo stai impostando con una stringa letterale e Python lo ha già convertito in modo incoerente nel momento in cui è assegnato a 'a'. È impossibile recuperare il testo originale a quel punto. –