Python 为什么这些字符串的计算结果不相等?
下面是vimscript x.vim:Python 为什么这些字符串的计算结果不相等?,python,string,vim,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 "=================
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
python您读取的文件可能在最后一行末尾有一个换行符。但是,从vim
获取行并将它们与\n
连接在一起不会在最后一行的末尾有一个新行。如果文件是在vim中编辑的(这似乎很可能),它几乎肯定会在末尾有一个新行,因为vim默认情况下会在那里放置一行。是的,这似乎是答案。尝试将+'#'
添加到两行打印
中。或者打印出len(fileString)
和len(bufferString)
。