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版本的读写锁操作方法
Apr 25 Python
Python线程指南详细介绍
Jan 05 Python
Python 异常处理的实例详解
Sep 11 Python
浅谈Django自定义模板标签template_tags的用处
Dec 20 Python
python中验证码连通域分割的方法详解
Jun 04 Python
python用match()函数爬数据方法详解
Jul 23 Python
Python中的上下文管理器相关知识详解
Sep 19 Python
Python 实现数组相减示例
Dec 27 Python
Python基于百度AI实现OCR文字识别
Apr 02 Python
Python如何解除一个装饰器
Aug 07 Python
Django数据统计功能count()的使用
Nov 30 Python
python中用ggplot绘制画图实例讲解
Jan 26 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
PHP计算指定日期所在周的开始和结束日期的方法
2015/03/24 PHP
php实现转换ubb代码的方法
2015/06/18 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
Jquery数独游戏解析(一)-页面布局
2010/11/05 Javascript
js实现缓冲运动效果的方法
2015/04/10 Javascript
jQuery 监控键盘一段时间没输入
2016/04/22 Javascript
基于JS实现textarea中获取动态剩余字数的方法
2016/05/25 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
JS实现的简单标签点击切换功能示例
2017/09/21 Javascript
JS获取数组中出现次数最多及第二多元素的方法
2017/10/27 Javascript
vue的mixins属性详解
2018/03/14 Javascript
Angular如何在应用初始化时运行代码详解
2018/06/11 Javascript
Angular5中提取公共组件之radio list的实例代码
2018/07/10 Javascript
详解mpvue开发小程序小总结
2018/07/25 Javascript
JS实现鼠标拖拽盒子移动及右键点击盒子消失效果示例
2019/01/29 Javascript
JavaScript中ES6规范中let和const的用法和区别
2020/08/06 Javascript
js+canvas实现转盘效果(两个版本)
2020/09/13 Javascript
vue3为什么要用proxy替代defineProperty
2020/10/19 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
[03:37]2015国际邀请赛第四日现场精彩集锦
2015/08/08 DOTA
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
2015/03/31 Python
Python实现图像几何变换
2015/07/06 Python
python实现汉诺塔递归算法经典案例
2021/03/01 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python连接Mssql基础教程之Python库pymssql
2018/09/16 Python
Python去除字符串前后空格的几种方法
2019/03/04 Python
详解python itertools功能
2020/02/07 Python
python+opencv3生成一个自定义纯色图教程
2020/02/19 Python
信息技术专业大学生个人的自我评价
2013/10/05 职场文书
计算机专业自荐信
2013/10/14 职场文书
生态学毕业生自荐信
2013/10/27 职场文书
会计系个人求职信范文分享
2013/12/20 职场文书
双十佳事迹材料
2014/01/29 职场文书
python使用pygame创建精灵Sprite
2021/04/06 Python
Golang bufio详细讲解
2022/04/21 Golang
python数字图像处理之图像的批量处理
2022/06/28 Python