[英]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.