Skip to main content
 首页 » 编程设计

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

2025年05月04日19bhlsheji

我正在尝试读取文件并收集包含以下内容的每个字符:"\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 个字母和换行符。