所以我试图从文件中找到一个字符串。我的代码如下所示:
fname=open('results', 'r')
lines=fname.readlines()
for i in lines:
print i
s=lines[41]
x= "0x80000680: 0x00000000\n"
if (i == x) :
stuff happens
我的代码读取文件只找到该行。匹配'x'但它不会进入if语句。有人注意到,当它在输出中打印出行时,似乎有更多的空格,但是当看到变量时,它只有一个。我试图为两个结果输入相同数量的空格,但我仍然无法进入if语句。当我到达那条线时打印它时,这是'i'的输出:
0x80000680: 0x00000000
它看起来像:
str: 0x80000680: 0x00000000\n
当我看到变量。如果我在变量中查看x,则会显示str: 0x80000680: 0x00000000\n
答案 0 :(得分:2)
您文件中的行不是 "0x80000680: 0x00000000\n"
很容易证明你的路线不是这个
y="0x80000680: "+ "0x00000000\n" #ensure both x and y have different `id`
x= "0x80000680: 0x00000000\n"
print "ID:",id(x),id(y)
print y == x , y.strip() == x.strip()
根据建议你应该print(repr(i))
实际看到你的行真正的样子
或者您可以尝试检查它是否以
开头i.startswith("0x80000680:")
或者您可以尝试使用re
来匹配匹配
re.match("0x80000680:.*0x00000000",i)