溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用python寫一個簡單的文件查找程序

發布時間:2021-12-18 14:32:25 來源:億速云 閱讀:569 作者:iii 欄目:大數據

本篇內容主要講解“怎么用python寫一個簡單的文件查找程序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用python寫一個簡單的文件查找程序”吧!

在動手寫代碼前,我們先要分析問題,我對文件搜索有如下要求:

1、 我可以指定要搜索的文件目錄

2、 我可以指定關鍵字,程序查找指定目錄里的包含這個關鍵字的文件名稱

3、 我可以指定文件后綴名,程序查找指定目錄里符合這個后綴的文件名稱

4、 如果同時指定了關鍵字和后綴,則取他們搜索結果的交集

好了,想清楚目標后,我們可以動手了。

首先,得解決文件查找問題,怎么才能獲取一個目錄下所有的文件名稱呢?非常幸運的是os模塊提供了一個名為walk的方法,可以做到這一點。具體使用方法,大家可以百度,關鍵詞:python os.walk 。

當關鍵字和后綴名都指定的時候,需要取他們的交集,我們可以使用set來分別存儲符合關鍵字和后綴名的結果,然后求交集。

存在只指定關鍵字而不指定后綴名的情況,反之也是可能的,但是都不指定是不允許的,這就要求程序能夠靈活應對這種參數變化的情況,因此,我們用可變參數來解決。

經過了前面的分析,代碼就簡單了

#coding=utf-8
import os
def find_file(path,**kwargs):
   if not 'key' in kwargs and not 'suffix' in kwargs:
       print u'請指定關鍵詞或者后綴'
       return
   key = kwargs.get('key',None)
   suffix = kwargs.get('suffix',None)

   file_lst = []

   for parent,dirnames,filenames in os.walk(path):
       for filename in filenames:
           filepath = os.path.join(parent,filename)
           file_lst.append(filepath)

   suffix_set = set()
   key_set = set()
   for filepath in file_lst:
       name = os.path.split(filepath)[1]
       if not suffix == None and name.endswith(suffix):
           suffix_set.add(filepath)
       if not key == None and not -1 == name.find(key):
           key_set.add(filepath)

   if suffix and key:
       res_set = suffix_set.intersection(key_set)
   elif suffix:
       res_set = suffix_set
   else:
       res_set = key_set

   return list(res_set)

if __name__ == '__main__':
   file_list = find_file('/Users/kwsy/PycharmProjects/Dream',key='lead',suffix='.py')
   for name in file_list:
       print name

到此,相信大家對“怎么用python寫一個簡單的文件查找程序”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女