在 Python 中使用 和

Jesse John 2023年1月30日 2022年5月18日
  1. Python 中的 ASCII 換行符
  2. Python 中的 ASCII 回車
  3. Python 中的行尾序列
  4. Python 螢幕輸出中\n\r 的區別
  5. Python 文字檔案中\n\r 的異同
  6. まとめ
  7. 參考
在 Python 中使用 
 和

本文將探討 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 節。

Author: Jesse John
Jesse John avatar Jesse John avatar

Jesse is passionate about data analysis and visualization. He uses the R statistical programming language for all aspects of his work.

相關文章 - Python Character