我需要在文件中写一些包含转义字符串的文本。
我的问题是,在打印文本时,隐含的特殊字符(如新行或制表效果)必须保持其行为。
但是包含特殊字符的文本将被打印为简单文本。
我无法添加 \\ ,因为此文本是在运行时发送的,我不知道这些字符在哪里。
一个例子:
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()
答案 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()
使用占位符似乎可以在这个示例中使用,但我不确定它与其他示例的效果如何。希望这会有助于其他一些想法。