比较Python中的两个字符串 - 取决于字符串源...?

时间:2014-06-02 10:49:48

标签: python string

我有以下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"

为什么行为不同?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果您尝试两次调用fHandler.read(),那么第二个将返回n个空字符串(如果您读取二进制,则返回空字节)。 fHandler.read()读取所有内容直到结束,第二个调用将在结束时开始读取,直到结束,因此它返回一个空字符串。尝试在函数调用之间添加fHandler.seek(0),它应该可以正常工作。