在python中,带的转义序列表示\和'的组合

2024-06-17 11:57:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想在一个文件中有一个文本

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

我使用的是

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

但是,由于转义序列和\'代码不起作用。我试过很多品种,一个班轮是不可能的。所以我试着把它分成三行并解析它,但是转义序列仍然有问题! 有人能提出一个办法吗? 敬礼


Tags: 文件run代码文本txtexportstatwrite
1条回答
网友
1楼 · 发布于 2024-06-17 11:57:47

使用原始字符串(前缀为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\')')

相关问题 更多 >