我想用Python腳本生成C代碼,而不必轉義。例如,我嘗試過:Python:將原始字符串寫入文件
myFile.write(someString + r'\r\n\')
希望r
前綴能使事情有效。但是,我仍然收到錯誤:
myFile.write(someString + ur'\r\n\')
^
SyntaxError: EOL while scanning string literal
如何在Python中將原始字符串寫入文件?
我想用Python腳本生成C代碼,而不必轉義。例如,我嘗試過:Python:將原始字符串寫入文件
myFile.write(someString + r'\r\n\')
希望r
前綴能使事情有效。但是,我仍然收到錯誤:
myFile.write(someString + ur'\r\n\')
^
SyntaxError: EOL while scanning string literal
如何在Python中將原始字符串寫入文件?
Python原始刺can't end with a backslash。
但是,有解決方法。
你可以只在字符串的末尾添加一個空格:
>>> with open("c:\\tmp\\test.txt", "w") as myFile:
... myFile.write(someString + r'\r\n\ ')
您propably不打擾,所以這可能是一個解決方案。
假設someString
是Hallo。
這會將Hallo\r\n\_
寫入文件,其中_
是空格。
如果你不喜歡多餘的空間,你可以像這樣刪除它:
>>> with open("c:\\tmp\\test.txt", "w") as myFile:
... myFile.write(someString + r'\r\n\ '[:-1])
這將寫Hallo\r\n\
到文件中,沒有額外的空白,並沒有逃避反斜槓。
myFile.write(someString + r'\r\n\\')
剛剛逃脫你的字符串^^
有沒有辦法有一個字符串的任意內容沒有逃脫。你總是會遇到問題,因爲沒有辦法,例如「文字結束字符」,在這種情況下,'
沒有逃脫,因爲Python無法確定它是否是字符串文字的結尾或者它的一部分。
而這就是我們首先逃避的全部原因。所以你的問題的答案是:你不能。不使用Python或任何其他語言。
你需要躲避最後\
因此它不逃避字符串的結尾,但如果你把它作爲一個原始字符串的一部分,它不會得到你想要的東西:
>>> r'\r\n\\'
'\\r\\n\\\\'
Python的字符串字面串聯,但是,讓你混合生和普通字符串:
>>> r'\r\n' '\\'
'\\r\\n\\'
+1表示字面連接。這裏最乾淨的解決方案。 – zigg
您可以通過format方法將原始字符串插入到字符串中。這確保 原始字符串將被插入正確的轉義。
例子:
mystring = "some string content {0}"
# insert raw string
mystring = mystring.format(r"\r\n\\")
myfile = open("test.txt", "w")
myfile.write(mystring)
myfile.close()
好正確轉義字符串這裏是更復雜的:'\\ \\ [Rñ\\'。後來它會變得更毛髮。 – Randomblue
你真的想寫'\ n'和'\ r'到你的文件嗎? –
是的,我想按照'r'前綴的建議正好寫** ** \ r \ n \。 – Randomblue