gpt4 book ai didi

python - 在 Linux 中使用 Python 正确读取换行符

转载 作者:太空狗 更新时间:2023-10-29 11:44:33 25 4
gpt4 key购买 nike

在 Windows 中,如果我使用 Python 的“for line in file”语法读取普通文本文件的内容,最后一行不会以换行符结尾,但它之前的所有行都会。在 Linux 中,这种行为似乎有所不同——当我逐行读取文件并打印其内容时,我总是发现最后一行以换行符结尾,即使真实文件中不存在换行符!我也尝试过使用 file.readline() 函数,结果相同。

(我假设文本文件实际上没有以换行符结尾。如果是这样,Linux 会从文件末尾打印两个换行符,而不仅仅是真正存在的那个。)

我的代码非常简单。问题是它在 Linux 中产生的结果与在 Windows 中产生的结果不同。

with open(path, 'r') as file:
for line in file:
print('>', line, '<', sep='')

'''
# Alternate method:
while True:
line = file.readline()
if not line:
break
print('>', line, '<', sep='')
'''

在 Linux 上(确切地说是 Ubuntu 13.10),最后一行总是以一个虚幻的换行符结尾。我在 Python 2 和 3 中都试过了。知道这里发生了什么吗?

最佳答案

Linux 中的每个文本文件都由一系列行加上一个终止换行符组成。如果文件在 linux 中不以换行符结尾,则它不被视为文本文件。这是在 POSIX file system 中定义的linux使用的。

3.206 Line

A sequence of zero or more non- <newline> characters plus a terminating <newline> character.

所以这不是你代码的问题。它只是linux下的文件系统。您可以简单地删除从文件中读取的字符串中的终止换行符。

关于python - 在 Linux 中使用 Python 正确读取换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25597330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com