为什么这些字符串被评估为不相等?

时间:2014-02-27 23:15:30

标签: python string vim

这是vimscript x.vim:

python << endpy
import vim
import time
import os
cb = vim.current.buffer
bufferString = '\n'.join(cb[:])
with open(cb.name, "r") as currentFile:
    fileString = currentFile.read()
print bufferString
print "================="
print fileString
if bufferString != fileString:
    print "File changed!"
else:
    print "Nothing changed!"
endpy

在vim中打开脚本并输入:so %,它打印出文件和缓冲区,根据python,它们是不同的,但通过目测,你可以看到它们明显相等。为什么呢?

1 个答案:

答案 0 :(得分:3)

您阅读的文件可能在最后一行的末尾有换行符。但是,从vim获取行并使用\n加入行会在最后一行的末尾添加换行符。