我正在使用Python将一些纯文本处理成LaTeX,因此我需要能够将\begin{enumerate}
或\newcommand
之类的内容写入文件。但是,当Python将其写入文件时,它会将\b
和\n
解释为特殊字符。
如何让Python将\newcommand
写入文件,而不是在新行上写ewcommand
?
代码是这样的......
with open(fileout,'w',encoding='utf-8') as fout:
fout.write("\begin{enumerate}[1.]\n")
Python 3,Mac OS 10.5 PPC
答案 0 :(得分:9)
一种解决方案是转义转义字符(\
)。这将在b
字符之前产生字面反斜杠,而不是转义b
:
with open(fileout,'w',encoding='utf-8') as fout:
fout.write("\\begin{enumerate}[1.]\n")
这将作为
写入文件\begin{enumerate}[1.]<newline>
(我假设最后的\n
是有意的换行符。如果没有,请在此使用双重转义:\\n
。)
答案 1 :(得分:8)
您只需要加倍反斜杠:\\n
,\\b
。这将逃避反斜杠。您还可以将r
前缀放在字符串前面:r'\begin'
。详细here,这将阻止替换。
答案 2 :(得分:3)
您也可以使用原始字符串:
with open(fileout,'w',encoding='utf-8') as fout:
fout.write(r"\begin{enumerate}[1.]\n")
注意\ begin
之前的'r'