文件中的字符串与python中的字符串不匹配

时间:2017-04-16 03:30:16

标签: python string comparison

我正在尝试从python中的文件读取数据并比较它以查看它是否与某些信息匹配。我有这个

with open("data.dat", "r") as f: #read data in from the file
    for line in f:
        if line is "Static": #this adds the data for the static attack

当我从我的文件中读取数据时,它会跳过它。我不知道为什么。

这是我的data.dat文件。

Static
0 10
1 50

2 个答案:

答案 0 :(得分:3)

您可以使用==来比较两个字符串:

with open("data.dat", "r") as f:
    for line in f:
        if line == "Static":

is用于测试两个对象是否是同一个对象(比较标识)。

==用于比较两个变量的值。

Python Language Reference - Objects, values and types

  

每个对象都有一个标识,一个类型和一个值。对象的标识一旦创建就永远不会改变;您可能会将其视为内存中对象的地址。 is运算符比较两个对象的标识; id()函数返回一个表示其身份的整数。

答案 1 :(得分:0)

对于此应用程序,您可以使用in运算符,如下所示:

with open("data.dat", "r") as f:
    for line in f:
        if "Static" in line:
            # do something

如果您希望条件捕获具有子字符串“Static”的任何行,而不管它是否是该行中唯一的字符串。

如果您严格要捕获只有子字符串“Static”的行,除了尾随空格,那么您可以使用==运算符,如下所示:

with open("data.dat", "r") as f:
    for line in f:
        if line.strip() == "Static":
            # do something