[英]Python, Print to file without functionality of “\n”
我正在嘗試將字符串打印到文件,但是我想這樣:
string = "asdfasdf \n awefawe"
我希望按原樣打印。 因此該文件包含:
asdfasdf \n awefawe
並不是
asdfasdf
awefawe
我怎么做? 我試過了:
f1=open('./testfile.txt', 'w+')
f1.write(body)
編輯:我不想更改字符串,我只想按原樣打印它。 甚至到標准輸出。 我不在乎。 我想知道字符串包含什么。 它不僅與\\n
修改string
的定義,使其最終包含\\n
而不是換行符。 可以使用以下任一方法完成此操作:
string = r"asdfasdf \n awefawe"
要么:
string = "asdfasdf \\n awefawe"
如果您不能修改設置string
值的代碼(如其他答案所建議),則可以使用一種特定於Python的編解碼器 ,將“特殊”字符轉換為等效的Python字符串文字轉義序列:
>>> print "abc\ndef".encode("string_escape")
abc\ndef
如果字符串可能包含非ASCII字符,則可能需要unicode_escape
,具體取決於您的較大要求:
>>> print "Ā".encode("string_escape")
\xc4\x80
>>> print u"Ā".encode("unicode_escape")
\u0100
從技術上講, string_escape
僅可應用於字節字符串,而unicode_escape
僅可應用於Unicode字符串,但是只要所有字符都在ASCII范圍內(即,U + 0000到U + 007F),Python 2便可以讓您放棄使用。 我不確定Python 3的等效項是什么.encode
方法似乎在3.2中的bytes
對象上不存在...
Python將字符串中的\\n
解釋為換行符。 因此,要打印文字反斜杠,只需使用另一個反斜杠對反斜杠進行轉義即可,如下所示:
string = "asdfasdf \\n awefawe"
您必須逃脫反斜杠。
string = "asdfasdf \\n awefawe"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.