Python 3.x 读取文本文件而不忽略末尾的空行

Python 3.x read text file without ignoring blank line at the end

我试过读取一个看起来像这样的文本文件:

1号线

3号线

使用以下代码:

with open('textfile.txt', 'r') as f_in:
    for line in f_in:
        print("~ " + line)
f_in.closed

但是循环只运行了 3 次而不是 4 次,忽略空行。

我得到的输出是:

~ Line 1
~ 
~ Line 3

我该如何解决?

当使用文件作为迭代器时,行尾用\n标记。这意味着即使您的编辑器可能在 3 之后显示 "blank line",如果那里没有数据,那里也没有行。

例如,试试这个:

with open('textfile.txt', 'wb') as f_out:
    f_out.write(b'1\n\n3\n4')

with open('textfile.txt', 'r') as f_in:
    for line in f_in:
        print("~ " + line)

通过将字符 4 放在最后一行,即使没有终止换行符,Python 也会识别出另一行。没有那个4,你只有三行。