2017-10-01 49 views
-1

我一直在試圖找到一些關鍵字列出了另一個文件中的文件,如果找到關鍵字,然後打印關鍵字。這裏是我的代碼,python不會產生任何錯誤,但我沒有看到任何打印。 (我很確定關鍵字存在於我使用查找功能的文件中)打印功能deos不能在Python中工作

keyword_array = [] 
with open('localDrive\\C0577785-MeshID.txt') as my_keywordfile:  
     for keyword in my_keywordfile.readlines(): 
      keyword_array.append(keyword.lower()) 
      # print(keyword) 

with open('localdrive\\file') as my_dataset: 
    for line in my_dataset.readlines(): 
     for keywords in keyword_array:   
      if line.lower().find(keywords) >= 0:     
       print("keywords:", keywords,"\n") 
       break  

我錯過了什麼嗎? 謝謝

+0

從關鍵字文件中讀取的行包括尾隨的換行符;因此它們將不會在您的數據文件中找到,除非該關鍵字是一行中最後一項。用keyword_array.append(keyword.strip()。lower())構建關鍵字列表' – jasonharper

+0

@jasonharper,你解決了這個問題:) – NinaDev

回答

1

當您從文件中讀取一行時,它通常在行尾有一個換行符...

  • '\ n'(Linux)或
  • '\ r \ n'(Windows)中

所以你追加你的線條到列表之前,您應該剝去使用strip()功能的換行符。

希望能夠幫到你

-1

在代碼的末尾嘗試一個print('something'),可能表示您之前完成了一些空的打印。否則,我會說,錯誤在於if條件,它不會被觸發。

0

功勞歸於@ jasonharper。
從關鍵字文件中讀取的行包括尾隨的換行符;因此它們將不會在您的數據文件中找到,除非該關鍵字是一行中最後一項。使用keyword_array.append(keyword.strip()。lower())構建關鍵字列表「