我在 Visual Studio 中打开一个自动生成的文件来检查它,Visual Studio 告诉我行尾不一致。我知道 LF 和 CRLF 之间的区别,所以我想我会尝试对生成代码进行一些小改动,以根据平台使用正确的换行符。
我告诉 Visual Studio 不要更改它,然后关闭文件。我用 Python 打开它,用这段代码查看每一行。
with open(filename, 'r') as f:
# uses %r so it prints the non-formatted string (so I can see \r and \n)
print '\n'.join(('%r' % x for x in f.xreadlines()))
我看一下输出,每一行(最后一行除外)都以'\r\n'结尾。最后一行没有换行符,所以它只包含文本。
我也用 Emacs 打开文件,它不会自动检测到使用 DOS 模式,并在每一行显示 ^M 字符。
当我看到每一行都使用相同的行尾时,为什么文件的行尾“不一致”?