Python实现Linux的find命令实例分享


Posted in Python onJune 04, 2017

使用Python实现简单Linux的find命令

代码如下:

#!/usr/bin/python

#*-*coding:utf8*-*

from optparse import OptionParser

import os

import sys

#使用选项帮助信息可以使用中文

reload(sys)

sys.setdefaultencoding("utf-8")

#定义选项以及命令使用帮助信息

usage = sys.argv[0] + " Directory Options\n\n例:"+sys.argv[0] + " /etc --type f --name passwd\n\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选项是否正确,只能跟 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)

Python实现Linux的find命令实例分享

运行结果如下:

Python实现Linux的find命令实例分享

Python 相关文章推荐
python求众数问题实例
Sep 26 Python
Python实现简单的文件传输与MySQL备份的脚本分享
Jan 03 Python
python利用MethodType绑定方法到类示例代码
Aug 27 Python
对Tensorflow中权值和feature map的可视化详解
Jun 14 Python
python获取时间及时间格式转换问题实例代码详解
Dec 06 Python
学习python的前途 python挣钱
Feb 27 Python
Python3.5迭代器与生成器用法实例分析
Apr 30 Python
Python数据类型之Set集合实例详解
May 07 Python
django框架forms组件用法实例详解
Dec 10 Python
Python开发之身份证验证库id_validator验证身份证号合法性及根据身份证号返回住址年龄等信息
Mar 20 Python
Python datetime模块的使用示例
Feb 02 Python
用Python实现Newton插值法
Apr 17 Python
安装Python和pygame及相应的环境变量配置(图文教程)
Jun 04 #Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 #Python
python snownlp情感分析简易demo(分享)
Jun 04 #Python
Python 调用Java实例详解
Jun 02 #Python
python使用两种发邮件的方式smtp和outlook示例
Jun 02 #Python
Python爬虫DNS解析缓存方法实例分析
Jun 02 #Python
Python编程实现二叉树及七种遍历方法详解
Jun 02 #Python
You might like
DOTA2游戏同人动画《龙之血》导演接受采访
2021/03/05 欧美动漫
CodeIgniter上传图片成功的全部过程分享
2013/08/12 PHP
PHP Session 变量的使用方法详解与实例代码
2013/09/11 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
php多重接口的实现方法
2015/06/20 PHP
php网页版聊天软件实现代码
2016/08/12 PHP
JavaScript 实现模态对话框 源代码大全
2009/05/02 Javascript
javascript 触发事件列表 比较不错
2009/09/03 Javascript
JavaScript关于select的相关操作说明
2010/01/13 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
javascript实现的平方米、亩、公顷单位换算小程序
2014/08/11 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
js实现类似jquery里animate动画效果的方法
2015/04/10 Javascript
jQuery控制元素显示、隐藏、切换、滑动的方法总结
2015/04/16 Javascript
JavaScript中string对象
2015/06/12 Javascript
JS+CSS实现的漂亮渐变背景特效代码(6个渐变效果)
2016/03/25 Javascript
js实现旋转木马效果
2017/03/17 Javascript
微信小程序实现多宫格抽奖活动
2020/04/15 Javascript
jQuery中each遍历的三种方法实例分析
2018/09/07 jQuery
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
[01:59]深扒TI7聊天轮盘语音出处 1
2017/05/11 DOTA
Python实现根据指定端口探测服务器/模块部署的方法
2014/08/25 Python
在python里面运用多继承方法详解
2019/07/01 Python
施华洛世奇西班牙官网:SWAROVSKI西班牙
2019/06/06 全球购物
Viking Direct爱尔兰:办公用品和家具
2019/11/21 全球购物
写好自荐信的技巧
2013/11/08 职场文书
技术总监个人的自我评价范文
2013/12/18 职场文书
考核评语大全
2014/04/29 职场文书
大学社团计划书
2014/05/01 职场文书
党支部三严三实对照检查材料思想汇报
2014/09/29 职场文书
山东省召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年端午节活动总结
2015/02/11 职场文书
学校办公室主任岗位职责
2015/04/01 职场文书
色戒观后感
2015/06/12 职场文书
电工实训心得体会
2016/01/14 职场文书