2010-11-22 18 views
2

LaTeX içine bazı düz metin işlemek için Python kullanıyorum, bu yüzden bir dosyaya \begin{enumerate} veya \newcommand gibi şeyler yazabilmek gerekiyor. Python bunu bir dosyaya yazdığında, \b ve \n'u özel karakterler olarak yorumlar.Python'daki bir dosyaya özel karakterler (" n", " b", ...) nasıl yazılır?

Python'u, ewcommand'u yeni bir satıra yazmak yerine \newcommand bir dosyaya nasıl yazabilirim?

kodu ... böyle bir şeydir

with open(fileout,'w',encoding='utf-8') as fout: 
    fout.write("\begin{enumerate}[1.]\n") 

Python 3, Mac OS

+2

başlamadan \ önce

with open(fileout,'w',encoding='utf-8') as fout: fout.write(r"\begin{enumerate}[1.]\n") 

Not 'r', bu "zaman var Python, kaynak koddan bir dize değişmezini ayrıştırır ". Diğer dosyalardan, kullanıcı konsolu girdisinden, ağ kaynaklarından, taşıyıcı güvercinlerden, her ne olursa olsun, \ b ve \ n okuyabilirsiniz ve bunlar kontrol karakterleri olarak yorumlanmayacaktır. –

cevap

8

bir çözüm kaçış karakteri (\) kaçmak etmektir 10.5 PPC. Bu yerine b kaçış b karakterin önüne bir hazır ters eğik çizgi ile sonuçlanacaktır:

with open(fileout,'w',encoding='utf-8') as fout: 
    fout.write("\\begin{enumerate}[1.]\n") 

Bu

\begin{enumerate}[1.]<newline> 

olarak dosyaya yazılır (Sonunda \n kasıtlı olduğunu varsayalım newline. Değilse, burada çift çıkış da kullanın: \\n.)

+0

Teşekkürler, harika çalışıyor. Sürpriz ben google bu cevapsız ediyorum: Sadece 2 hatlarında – registrar

8

Sadece ters eğik çizgiyi iki kez döndürmeniz yeterlidir: \\n, \\b. Bu ters eğik çizgi kaçacak. r önekini dizenizin önüne de koyabilirsiniz: r'\begin'. Ayrıntılı olarak here, bu ikameleri önleyecektir.

+0

1 çiğ dizesinde "\ n" ile ilgili bir sorun var \ ... – ascobol

2

Ayrıca çiğ dizeleri kullanabilirsiniz: O "Python bir dosyaya bu yazdığında" değil dikkat etmek son derece önemlidir

+0

tam bir cevap için –

+0

\ değildi n kaçmış olması gerekiyordu ? oh, iyi .. print >> fout, r "\ begin {enumerate} [1.]" –

+0

Mükemmel! Teşekkürler - Bunun gibi basit bir şey olması gerektiğini biliyordum. – registrar

İlgili konular