2017-04-16 88 views
0

我想從python中的文件中讀取數據,並比較它是否與某些信息匹配。我有這個從文件中的字符串不匹配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 

回答

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()函數返回一個表示其身份的整數。

0

對於這個應用程序,你可以使用in運營商,像這樣:

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

這是,如果你想用串「靜」,由條件被抓,任何線無論或者不是它是唯一的字符串。

如果嚴格想趕上那只有子串「靜」,在裏面,與尾部空格除外行,那麼你可以使用==運營商,像這樣:

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