将转义字符写入文件

时间:2016-05-23 21:18:27

标签: python string python-2.7 file-io escaping

我需要在文件中写一些包含转义字符串的文本。

我的问题是,在打印文本时,隐含的特殊字符(如新行或制表效果)必须保持其行为。

但是包含特殊字符的文本将被打印为简单文本。

我无法添加 \\ ,因为此文本是在运行时发送的,我不知道这些字符在哪里。

一个例子:

header = """

newLineSymbol = '\n'


newValueSeparator = '\t'
"""

在我的文件中,我需要找到:

newLineSymbol = '\n'


newValueSeparator = '\t'

我尝试将文件作为 binary 打开,但没有成功。

上次尝试使用 repr 函数编写文本,但它将我的文本打印为:

\n\nnewLineSymbol = '\n'\n\n\nnewValueSeparator = '\t'\n

我用这个来写:

fopen = open('output', 'w')
fopen.write(header)
fopen.close()

2 个答案:

答案 0 :(得分:1)

您想要做的是不可能

请参阅this answer了解原因 引用答案:

  

输入testStr =" \ n"特殊人物已经存在   解释。所以在下一行你不能改变他们的   解释已经发生了。这是在期间完成的   词法分析阶段,所以甚至在代码实际之前   执行。当字符串被分配给你的变量时   人物" \"和" n"已经消失了 - 只有一个角色    - 新行字符。

简而言之,一旦声明了字符串,多行字符串中'\n'和实际<enter>之间就没有区别。

答案 1 :(得分:0)

你可以试试这样的字符串格式:

    header = """

    newLineSymbol = '%s%s'


    newValueSeparator = '%s%s'
    """ % ('\\', 'n', '\\','t')

    fopen = open('output.txt', 'w')
    fopen.write(header)
    fopen.close()

使用占位符似乎可以在这个示例中使用,但我不确定它与其他示例的效果如何。希望这会有助于其他一些想法。