2016-07-06 48 views
0

我一直在用下面這段代碼找到字符串從一個CSV文件到另一個準確匹配:行查找在另一個CSV

with open(filename1, 'rb') as file1: 
file1reader = csv.reader(file1) 

for line1 in file1reader: 
    with open(filename2, 'rb') as file2: 
     file2reader = csv.reader(file2) 

     for linenum, line2 in enumerate(file2reader, start=1): 
      if str(line1) == str(line2): 
       print('match found') 
       matches.append(str(linenum)) 
       counts.append(linenum) 
       if len(matches) >= MAX_COUNT: 
        break 

    if len(matches) >= MAX_COUNT: 
     break 

現在,我有了屬於部分匹配的字符串文件到另一個文件。我也希望這些匹配的確切字符串在上面的代碼中。我試圖用in替換==,但沒有運氣。任何幫助?

例子:

string1 = humpty 

string2 = humptydumpty 

回答

1

嘗試檢查兩個方向:

if (str(line1) in str(line2)) or (str(line2) in str(line1)): 

我不要認爲括號是絕對必要的,但它們使意思更清晰。

+0

試過這個,但仍然沒有運氣。該腳本似乎無法找到匹配項,即使我確定在第一個列表中存在第二個列表中的字符串中存在的子字符串。 – Labrat

+0

我認爲這是因爲它是比較列表對象,因此string1 = ['humpty']和string2 = ['humptydumpty'] – Labrat

+0

如果是這種情況,那麼'str(string1 [0])in str(string2 [0]) [0])'會工作..假設他們是一個項目清單 – Jon

0

你試圖check if a substring is present in a string

爲此,您可以使用in操作:

例子:

if "humpty" in "humptydumpty": 
    print "Ok" 

你的情況:

if string1 in string2: 
    print "Ok" 
相關問題