在Windows中,如果我使用Python的“for line In file”语法来读取普通文本文件的内容,那么最后一行不会以换行符结尾,而是以它前面的所有行结尾。在Linux中,这种行为似乎有所不同——当我逐行读取一个文件并打印其内容时,我总是发现最后一行以换行符结尾,即使在真正的文件中并不存在这样的字符!我也试过用文件.readline()函数,结果相同。在
(我假设文本文件实际上不会以换行结尾。如果是这样,Linux将从文件末尾打印两行新行,而不仅仅是真正存在的那行。)
我的代码非常简单。问题是它在Linux下产生的结果与在Windows中不同。在with open(path, 'r') as file:
for line in file:
print('>', line, '
'''
# Alternate method:
while True:
line = file.readline()
if not line:
break
print('>', line, '
'''
在Linux(确切地说是Ubuntu13.10)上,最后一行总是以一个虚幻的换行符结尾。我尝试过python2和python3。你知道这是怎么回事吗?在