python - 为什么 readlines() 在我的文本文件中包含一个\n 字符(如果它不存在)?

标签 python python-3.x

我正在尝试读取文件并收集包含以下内容的每个字符:"\n""\t"""

我的文本文件包含以下内容:

aaabbcddd

我故意遗漏了\n,所以 python 应该在 d 处停止读取。

代码如下:

fname  = "files.txt"
content = []
with open(fname) as f:
    for each_line in f:
        for each_character in each_line:
            content.append(each_character)


print(content)

我的内容输出是:

['a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd', '\n']

如果 '\n' 是有意插入的,那么如果它存储在我的列表中就没问题;但是,在这种情况下,我没有输入 '\n'。

出了什么问题?

最佳答案

你读了一行。

一行以换行符结束。我很确定您的文本编辑器会在您键入的内容末尾插入它。

尝试添加一个简单的跟踪,记录您输入的内容:

for each_line in f:
    print(len(each_line), "|", each_line, "|")

我的输出:

10 | aaabbcddd
 |
['a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd', '\n']

即使我没有向文件添加返回字符,而且它只有一行,但编辑器 (vi) 会假定它。输入字符串有 9 个字母和换行符。

关于python - 为什么 readlines() 在我的文本文件中包含一个\n 字符(如果它不存在)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56178004/

相关文章:

python - 使用 python pandas 读取 sharepoint excel 文件

python - 在 Python 中创建条形图

python-3.x - Python Plotly 的 Dash : How do you shut the web app running on a port or make changes to it? CTRL+C 似乎不起作用

python - 获取所有对象 ID 的列表

python-3.x - 如何在列上应用函数

Python 与所有主要专业语言

python - 当我们安装了较新版本的Python时,如何安装旧版本的Python

python - Tensorflow 估计器 : how to use tf. graph_util.convert_variables_to_constants

python-3.x - cumalativive 所有其他列都需要 python ML 中带有 cumsum() 的日期列

python-3.x - 如何在 Flask-Appbuilder 中为 OAuth2.0 使用自定义提供程序 [keycloak]?