在 Python 中使用 和
- Python 中的 ASCII 換行符
- Python 中的 ASCII 回車
- Python 中的行尾序列
-
Python 螢幕輸出中
\n
和\r
的區別 -
Python 文字檔案中
\n
和\r
的異同 - まとめ
- 參考
本文將探討 Python 的轉義序列 \n
和 \r
之間的區別。
Python 中的 ASCII 換行符
轉義序列 \n
表示 ASCII 換行符 (LF)。
我們可以使用轉義序列 \n
在字串中建立一個新行。反斜槓告訴 Python 將下面的 n
視為命令,建立一個新行。
游標位於下一行的開頭。
Python 中的 ASCII 回車
轉義序列 \r
表示 ASCII 回車 (CR)。
\r
的行為會有所不同,具體取決於輸出是傳送到螢幕還是文字檔案。
此外,當 \r
與 \n
組合並將輸出傳送到文字檔案時,順序很重要。
Python 中的行尾序列
在文字檔案中,Linux 使用 LF 來表示行尾。Windows 為此目的使用 CR LF。
舊版本的 Macintosh 使用 CR。
如果我們處理 Windows 文字檔案,我們需要牢記這一點。
Python 螢幕輸出中\n
和\r
的區別
以下程式碼顯示了顯示直譯器輸出時\n
和\r
之間的區別。
示例程式碼:
print("ggg\nddd")
print("hhh\rkk")
# Both \n and \r together.
print("ccc\r\nbbb")
print("www\n\rjjj")
輸出:
ggg
ddd
kkh
ccc
bbb
www
jjj
第一條語句在第二行列印了\n
後面的字母,因為轉義序列將游標置於新行的開頭。
第二條語句中的\r
轉義序列將游標置於同一行的開頭,字母 kk
替換了該行已有的字元。 \r
不會將游標前進到下一行。
我們還發現 \n\r
和 \r\n
在這種情況下的行為相似。
Python 文字檔案中\n
和\r
的異同
如果我們將直譯器的輸出寫入文字檔案,\n
和 \r
單獨時的行為相似,但在一起時的行為不同。
兩者都建立一個新的文字行,這與單獨使用時在螢幕上顯示時發生的情況不同。
當組合使用時,\r\n
只建立一個新的文字行,就像\n
或\r
單獨使用。
但是,\n\r
會建立兩行文字。當\n
後跟\r
時,第一個轉義序列\n
建立一行,第二個轉義序列\r
建立另一行。
我們必須建立一個文字檔案並使用其路徑來執行以下示例程式碼。
示例程式碼:
# Create variables.
new_l = "\n"
sta1 = "YYY\rWWW"
sta2 = "ZZZ\nUUU"
sta3 = "SSS\r\nQQQ"
sta4 = "RRR\n\rMMM"
# Open a file in append mode.
fl = open("/path/to/text/filename.txt", 'a')
# Write the variables to the file.
fl.writelines([sta1, new_l, sta2, new_l, sta3, new_l, sta4])
# Close the file.
fl.close()
輸出:
YYY
WWW
ZZZ
UUU
SSS
QQQ
RRR
MMM
まとめ
如果寫入螢幕,我們應該使用 \n
建立一個新行。如果我們使用\r
,它後面的文字會改寫當前行的內容。
寫入文字檔案時,我們可以使用\n
或 \r\n
序列。我們還需要記住不同作業系統中的行尾序列。
參考
請參閱 Python 語言參考 中的第 2.1 和 2.4 節。