如何在Python中将特殊字符("\n","\b",...)写入文件?

5 投票
3 回答
23977 浏览
提问于 2025-04-16 07:27

我正在用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。)

撰写回答