2017-07-25 149 views
-2

我想要一個接受字符串參數(數據)並將該字符串分解爲單詞(單詞)的函數。之後,它應該獲取目錄中的所有文件,獲取每個文件名並檢查文件名中是否存在所有單詞。 如果存在,則打印文件的名稱並打印「是否要打開它」,如果是,則打印「打開」並打破所有循環。如果沒有,那麼它應該繼續搜索。在Python中搜索文件

最後,它應該打印文件是否存在或不在目錄中。

這是我寫的代碼。

def file_search(data): 
    data = data.split() 

    for root, dirs, files in os.walk("/media/", topdown=False): 
     word_match = True 
     opened = False 

     if not opened: 

      for name in files: 
       for word in data: 
        if word not in name: 
         word_match = False 

       if word_match: 
        print "file found:" + name + "where path is" + root 
        print "do you want to open it " 
        answer = raw_input() 
        if answer == "yes" : 
         opened = True 
         print "file opened" 
         break 
+2

您面臨的問題是什麼?堆棧追溯或錯誤具體 –

+0

Utraksh沒有錯誤在那裏。它運行成功但沒有打印任何東西。即使給定的文件存在於目錄 – Maan

+0

這可能是因爲你沒有在你的腳本中調用函數,你剛剛聲明瞭它,使用'file_search(「文件名」)'調用你的函數。 –

回答

0

不知何故我修好了。

def file_search2(name, name_words): 
check = True 
for word in name_words: 
    if word not in name: 
     check = False 
     break 

return check 




def file_search(filename): 
    file_found = False 
    file_opened = False 
    words = filename.split() 

    for root, dirs, files in os.walk('/media/', topdown=False): 

     for name in files: 



      if file_search2(name, words) and file_opened == False: 
       file_found = True 
       print "file found :" + name 
       print "Do you want to open the file:" 
       answer = raw_input() 
       if "yes" in answer: 
        file_opened = True 
        print "file opened successfully" 

    if file_opened == False: 
     print "file not found" 



file_search("file name with space")