在 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