我正在尝试从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
答案 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