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