簡體   English   中英

python中\\和'組合的轉義序列

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

我想在文件中添加文本

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\')')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM