如何在Python中将特殊字符("\n","\b",...)写入文件?
我正在用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
3 个回答
4
你还可以使用原始字符串:
with open(fileout,'w',encoding='utf-8') as fout:
fout.write(r"\begin{enumerate}[1.]\n")
注意在 \begin 前面有个 'r'
10
你只需要把反斜杠加倍,比如写成 \\n
和 \\b
。这样可以让反斜杠不被处理。另外,你也可以在字符串前面加一个 r
,像这样:r'\begin'
。正如这里详细说明的内容,这样做可以防止字符串中的内容被替换。
12
一种解决方法是对转义字符(\
)进行转义。这样在字符前面就会出现一个字面上的反斜杠,而不是转义。
with open(fileout,'w',encoding='utf-8') as fout:
fout.write("\\begin{enumerate}[1.]\n")
这将会被写入文件中,内容是
\begin{enumerate}[1.]<newline>
(我假设最后的\n
是故意放的换行符。如果不是的话,这里也要进行双重转义:\\n
。)