python 中 \ 和 ’ 组合的转义序列

escape sequence with for a combination of \ and ’ in python

我想在文件 g 中包含这样的文本

stat.run('Export RStd \'distFunc.txt\' overwrite')

我正在使用

的变体
g.write("stat.run('Export RStd \ ")
g.write("'distFunc.txt\")
g.write("' overwrite')\n")

但是,由于转义序列和 \' 代码无法正常工作。我尝试了很多品种,但我不可能使用一种衬垫。所以我试着把它分成三行并解析它,但转义序列仍然有问题! 有人可以建议一种方法吗? 问候

使用原始字符串(以 r 为前缀)和三重引号(连续三个 '" 字符的序列)。在原始字符串中,反斜杠并不神奇。在三引号字符串中,单引号和双引号都不是魔术。下面两个完整的程序是等价的:

with open ("g", "w") as g:
    g.write(r'''stat.run('Export RStd \'distFunc.txt\' overwrite')''')
with open ("g", "w") as g:
    g.write(r"""stat.run('Export RStd \'distFunc.txt\' overwrite')""")

或者,使用带双引号的原始字符串。在双引号字符串中,单引号并不神奇:

with open ("g", "w") as g:
    g.write(r"stat.run('Export RStd \'distFunc.txt\' overwrite')")

或者,如果您不想使用原始字符串,您可以转义反斜杠:

with open ("g", "w") as g:
    g.write("stat.run('Export RStd \'distFunc.txt\' overwrite')")

最后,如果一定要使用单引号字符串,可以对单引号进行转义:

with open ("g", "w") as g:
    g.write('stat.run(\'Export RStd \\'distFunc.txt\\' overwrite\')')

请注意,上面每一行源代码的名称都是完全相同的字符串。尽管它们在源代码中的表示方式不同,但所有结果字符串都是相等的:

assert (
    r'''stat.run('Export RStd \'distFunc.txt\' overwrite')''' ==
    r"""stat.run('Export RStd \'distFunc.txt\' overwrite')""" ==
    r"stat.run('Export RStd \'distFunc.txt\' overwrite')" ==
    "stat.run('Export RStd \'distFunc.txt\' overwrite')" ==
    'stat.run(\'Export RStd \\'distFunc.txt\\' overwrite\')')