我有以下python脚本:
import sys
import io
str1 = 'asd'
str2 - 'asd'
if (str2.find(str1)==-1):
print('FALSE')
else:
print('TRUE')
#Prints "TRUE"
工作正常。没问题。如果我取出字符串,将其放入文件(保存)然后将文件内容读取到str1和str2,问题就会出现,如下所示:
import sys
import io
fHandler = open(r'C:\dev\1.pub','r')
str1 = fHandler.read()
str2 = fHandler.read()
if (str2.find(str1)==-1):
print('FALSE')
else:
print('TRUE')
#Prints "FALSE"
为什么行为不同?
谢谢!
答案 0 :(得分:0)
如果您尝试两次调用fHandler.read()
,那么第二个将返回n个空字符串(如果您读取二进制,则返回空字节)。 fHandler.read()
读取所有内容直到结束,第二个调用将在结束时开始读取,直到结束,因此它返回一个空字符串。尝试在函数调用之间添加fHandler.seek(0)
,它应该可以正常工作。