我正在尝试读取文件并收集包含以下内容的每个字符:“ \ 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'。
出了什么问题?
答案 0 :(得分:2)
您读了一行。
行以换行符终止。我很确定您的文本编辑器会在您键入的内容的末尾插入该文字。
尝试添加对输入内容的简单跟踪:
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个字母和换行符。
答案 1 :(得分:2)
您确定您的文本文件在此字符串之后没有换行符吗?我已尝试按原样运行您的代码,并且该代码在数组中不包含“ \ n”。输出如下:
['a', 'a', 'a', 'b', 'b', 'c', 'd', 'd', 'd']
有时在文本文件中可能会意外插入换行符,并且仔细检查也无妨。
答案 2 :(得分:1)
也许文本编辑器会自动保存换行符?