本篇內(nèi)容主要講解“怎么用python寫一個簡單的文件查找程序”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用python寫一個簡單的文件查找程序”吧!
站在用戶的角度思考問題,與客戶深入溝通,找到澄城網(wǎng)站設計與澄城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名與空間、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋澄城地區(qū)。
在動手寫代碼前,我們先要分析問題,我對文件搜索有如下要求:
1、 我可以指定要搜索的文件目錄
2、 我可以指定關鍵字,程序查找指定目錄里的包含這個關鍵字的文件名稱
3、 我可以指定文件后綴名,程序查找指定目錄里符合這個后綴的文件名稱
4、 如果同時指定了關鍵字和后綴,則取他們搜索結果的交集
好了,想清楚目標后,我們可以動手了。
首先,得解決文件查找問題,怎么才能獲取一個目錄下所有的文件名稱呢?非常幸運的是os模塊提供了一個名為walk的方法,可以做到這一點。具體使用方法,大家可以百度,關鍵詞:python os.walk 。
當關鍵字和后綴名都指定的時候,需要取他們的交集,我們可以使用set來分別存儲符合關鍵字和后綴名的結果,然后求交集。
存在只指定關鍵字而不指定后綴名的情況,反之也是可能的,但是都不指定是不允許的,這就要求程序能夠靈活應對這種參數(shù)變化的情況,因此,我們用可變參數(shù)來解決。
經(jīng)過了前面的分析,代碼就簡單了
#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寫一個簡單的文件查找程序”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關內(nèi)容可以進入相關頻道進行查詢,關注我們,繼續(xù)學習!