Python在打开的文件末尾添加了新行

时间:2018-09-21 13:56:32

标签: python file newline

在编写一些测试时,我陷入了一些奇怪的行为。我终于把问题缩小到文件打开了。例如,my.dat

one line
two lines and no final line break

然后我运行了该python代码:

with open('my.dat') as fd:
    assert fd.read()[-1] == '\n'

对于python 3和2,此代码都不会引发任何AssertError。

我的问题是:为什么强制在文件末尾出现行跳转?

1 个答案:

答案 0 :(得分:3)

它在这里工作。您是否100%确定文件末尾实际上没有换行符?因为许多文本编辑器(atom,notepad ++)会在文件末尾自动添加换行符。

>>> open('a.txt', 'w').write('blabla')
6
>>> open('a.txt', 'r').read()
'blabla'
>>> assert open('a.txt', 'r').read()[-1] == '\n'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AssertionError