Hi!请登陆

用python打造一款文件搜索工具所有功能自己定義

2020-9-3 55 9/3

作者:陳熹來源:早起Pyho大傢好,又到瞭pyho辦公自動化系列。在日常的辦公中,我們經常會從一堆不同格式的文件(夾)中搜索特定的文件,可能你是憑著記憶去找或是借助軟件,但你有想過如何用pyho實現嗎掃描路徑內的內容有些時候我們會希望在當前文件夾的成百上千個文件中快速找到需要的文件,如果這個文件夾又包括很多個子文件夾,並不需要程序進去查找而無端耗費資源。這就是典型的掃描一層搜索1.基於o.cadi()需求說明輸出C:\PogamFile(x86)路徑下名字包含Widow的文件夾名稱,並統計個數步驟分析這是一個非遍歷的需求,隻需要在目的文件夾內掃描一圈判斷即可。用到的方法是o.cadi(),使用如下:impoopah=...oileio.cadi(pah):pi(ile.ame,ile.pah,ile.i_di())上面代碼最後輸出的是給定路徑下各內容的名字、絕對路徑,並判斷其是否是文件夾需要註意的是o.cadi()隻在路徑下一級掃描,需求實現的代碼如下(代碼邏輯很簡單,可以自己做相應調整):impooum=0oileio.cadi('C:\\PogamFile(x86)'):iile.i_di():i'Widow'iile.ame:pi(ile.ame)um+=1pi('含有Widow的文件夾個數為:',um)2.基於o.lidi()需求說明輸出C:\PogamFile(x86)路徑下所有可執行文件(即後綴為.exe)步驟分析依然是非遍歷的需求,這裡使用o.lidi(),它比o.cadi()簡單一些,可直接調用輸出名稱而非路徑。後綴名可以用字符串的切片來判斷,但難免失去靈活性。此時建議用字符串方法ig.edwih()來判斷名稱的結尾是否是.exe,代碼如下:impoooileio.lidi('C:\\PogamFile(x86)'):iile.edwih('.exe'):pi(ile)三、遍歷文件夾搜索文件更多時候我們希望給定一個大概的路徑,在這個路徑下的所有文件夾裡一層一層找,找到特定文件或者符合要求的文件,這裡需要遍歷文件,有兩種主要的方法:1.基於o.walk()o.walk遍歷後產生三個參數:當前文件夾路徑,包含文件夾名稱[列表形式],包含文件名稱[列表形式],可以用如下代碼完成簡單遍歷:impooodipah,diame,ileameio.walk('C:\\PogamFile(x86)'):pi('打開文件夾{dipah}')idiame:pi(diame)iileame:pi(ileame)pi('-'*10)需求說明遍歷C:\PogamFile(x86)找出所有新版Excel文件(即後綴為.xlx)步驟分析隻要理解瞭o.walk()的工作模式,用edwih()判斷後綴即可。最後如果需要獲得絕對路徑可以把當前文件夾路徑和文件名拼接,簡單一點用+或者字符串格式化,也可以用o模塊內的方法impooodipah,diame,ileameio.walk('C:\\PogamFile(x86)'):iileame:oiiileame:ii.edwih('.xlx'):pi(o.pah.joi(dipah,i))2.基於非o方法:globglob在之前的推文也反復提到遍歷框架:impogloboileiglob.glob('**/*',ecuie=Tue):pi(ile)**/*的使用表示用通配符指代給定路徑下的任何一層,ecuie參數允許遍歷搜索由於glob可以使用通配符,大大拓寬瞭靈活程度,這裡利用glob也來完成上面的需求需求說明遍歷C:\PogamFile(x86)找出所有新版Excel文件(即後綴為.xlx)impogloboileiglob.glob('**/*.xlx',ecuie=Tue):pi(ile)可以看到非常簡單,在原有代碼基礎上加上後綴名就能夠完成特定類型文件的搜索。如果需要搜索特定文件,如遍歷C:\PogamFile(x86)找到文件pacice.x,隻需要後一個*改成具體名稱就行impogloboileiglob.glob('**/pacice.x',ecuie=Tue):pi(ile)四、寫在最後通過本文的Pyho自動化腳本制作過程,我們可以再次體會Pyho辦公自動化的強大!如果對自動化代碼和數據感興趣可以在後臺回復自動化獲取。當然本文隻是基於幾個簡單的需求來講解使用Pyho來制作搜索文件腳本的主要方法,接下來你可以結合之前的自動化案例或以根據自己的需求添加一些其他的規則或增加新的功能,打造出一款屬於你的軟件!最後還是希望大傢能夠理解Pyho辦公自動化的一個核心就是批量操作-解放雙手,讓復雜的工作自動化!舉報/反饋

相关推荐