Kullanıcı tarafından girilen bir GUI metin kutusundan bir dize okuyorum ve pandoc aracılığıyla işleyin. Dize, ters eğik çizgi karakterleri olan matematik için lateks yönergelerini içerir. Dizgeyi işlenmek üzere pandoc'a ham bir dize olarak göndermek istiyorum. Ama '\ theta' gibi bir şey bir sekme ve 'heta' olur.python: dize değişmezini ham dizgeye dönüştürme nasıl yapılır?
Ters eğik çizgi karakterleri içeren bir dize değişmezini işlenmemiş bir dizeye nasıl dönüştürebilirim?
Düzenleme:
Teşekkür develerx, uçan koyun ve unutbu. Ama çözümlerin hiçbiri bana yardım etmiyor gibi görünüyor. Bunun nedeni, python'da herhangi bir etkisi olmayan fakat latekste bir anlamı olan başka ters eğik çizgi karakterleri olmasıdır.
Örneğin '\ lambda'. o \ lambda olarak kalmalıdır - Bütün yöntemler lateks işlemede geçmez üretmek
\\lambda
önerdi.
başka düzenleme: ben bu işi sağlayabilirseniz, ben üzerinden olması gerektiğini düşünüyorum. @Mark: Her üç yöntem de istemediğim cevapları veriyor.
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
size dize gerçekten \\ 'lambda' içerir ve bunu yazdırırken sadece iki katına olmadığından emin misiniz baskı olacak mı? 'Mystring [1:]' i basmayı deneyin ve hala içinde bir '\' olup olmadığını görün. Bir miktar tutarlılık olmalı - eğer '\ t' sekmeye dönüyorsa o zaman '' '' '' ''' –
Dizenin 'repr 'ifadesini GUI metin kutusundan alınabilir ve pandoc üzerinden işlemek için kullandığınız kodu gösterebilir misiniz? – unutbu
Testiniz gerçekçi değil. Bunu bir metin kutusundan alamıyorsunuz, onu bir dizgi ile ayarlıyorsunuz, ve Python zaten a'ya atandığı zaman tutarsız bir şekilde onu dönüştürdü. Orijinal metninizi bu noktada geri almak imkansızdır. –