Python實(shí)現(xiàn)Linux的find命令實(shí)例分享
更新時(shí)間:2017年06月04日 10:17:23 作者:linuxidc
本文給大家分享的是使用python簡單實(shí)現(xiàn)模擬linux的find命令的實(shí)例代碼,推薦給大家,希望大家能夠喜歡
使用Python實(shí)現(xiàn)簡單Linux的find命令
代碼如下:
#!/usr/bin/python
#*-*coding:utf8*-*
from optparse import OptionParser
import os
import sys
#使用選項(xiàng)幫助信息可以使用中文
reload(sys)
sys.setdefaultencoding("utf-8")
#定義選項(xiàng)以及命令使用幫助信息
usage = sys.argv[0] + " Directory Options\n\n例:"+sys.argv[0] + " /etc --type f --name passwd\n\n注意:選項(xiàng)和目錄益可隨意調(diào)換,可以寫多個(gè)目錄,會從多個(gè)目錄中進(jìn)行查找"
parser = OptionParser(usage)
parser.add_option("--type",
dest="filetype",
action="store",
default=False,
help="指定查找對象的類型,文件類型可以是 d:代表目錄 f:代表文件")
parser.add_option("--name",
dest="name",
action="store",
default=False,
help="指定查找對象的名稱,文件或目錄全名")
options, args = parser.parse_args()
def find(dir):
directory = os.walk(dir)
for x, y, z in directory:
if options.filetype == "f":
for name in z:
if name == options.name:
path = os.path.join(x,name)
print(path)
if options.filetype == "d":
for name in y:
if name == options.name:
path = os.path.join(x,name)
print(path)
#判斷目錄是否存在,并且是否為目錄
for dir in args:
if os.path.exists(dir) == False:
sys.stderr.write(dir+" is not found\n")
exit(100)
if os.path.isfile(dir):
sys.stderr.write(dir+" is a file\n")
exit(101)
#判斷--type選項(xiàng)是否正確,只能跟 f 或者 d
if not (options.filetype == "f" or options.filetype == "d"):
sys.stderr.write("--type only support d or f\n")
exit(102)
if __name__ == "__main__":
for dir in args:
find(dir)

運(yùn)行結(jié)果如下:

相關(guān)文章
PyTorch中的C++擴(kuò)展實(shí)現(xiàn)
這篇文章主要介紹了PyTorch中的C++擴(kuò)展實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04
Python OS系統(tǒng)解決路徑中空格原因?qū)е挛募虿婚_的問題
這篇文章主要介紹了Python OS系統(tǒng)解決路徑中空格原因?qū)е挛募虿婚_的問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-02-02
Python 遠(yuǎn)程開關(guān)機(jī)的方法
這篇文章主要介紹了Python 遠(yuǎn)程開關(guān)機(jī)的方法,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
python獲取文件真實(shí)鏈接的方法,針對于302返回碼
今天小編就為大家分享一篇python獲取文件真實(shí)鏈接的方法,針對于302返回碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-05-05
表格梳理python內(nèi)置數(shù)學(xué)模塊math分析詳解
這篇文章主要為大家介紹了python內(nèi)置數(shù)學(xué)模塊math的分析詳解,文中通過表格梳理的方式以便讓大家在學(xué)習(xí)過程中一目望去清晰明了,有需要的朋友可以借鑒參考下2021-10-10
使用Python3實(shí)現(xiàn)判斷函數(shù)的圈復(fù)雜度
編寫函數(shù)最重要的原則就是:別寫太復(fù)雜的函數(shù),那什么樣的函數(shù)才能算是過于復(fù)雜?一般會通過兩個(gè)標(biāo)準(zhǔn)來判斷,長度和圈復(fù)雜度,下面我們就來看看如何使用Python判斷函數(shù)的圈復(fù)雜度吧2024-04-04
Python實(shí)現(xiàn)將實(shí)體類列表數(shù)據(jù)導(dǎo)出到Excel文件
在數(shù)據(jù)處理和報(bào)告生成中,將實(shí)體類的列表數(shù)據(jù)導(dǎo)出到Excel文件是一項(xiàng)常見任務(wù),Python提供了多種庫來實(shí)現(xiàn)這一目標(biāo),下面就來跟隨小編一起學(xué)習(xí)一下吧2025-01-01

