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中List.count()方法的使用教程
May 20 Python
Python中datetime模块参考手册
Jan 13 Python
基于Python_脚本CGI、特点、应用、开发环境(详解)
May 23 Python
Python中的defaultdict与__missing__()使用介绍
Feb 03 Python
使用Python获取并处理IP的类型及格式方法
Nov 01 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
win10下安装Anaconda的教程(python环境+jupyter_notebook)
Oct 23 Python
Pytorch Tensor的统计属性实例讲解
Dec 30 Python
python 控制台单行刷新,多行刷新实例
Feb 19 Python
Python自定义聚合函数merge与transform区别详解
May 26 Python
详解python实现可视化的MD5、sha256哈希加密小工具
Sep 14 Python
python unittest单元测试的步骤分析
Aug 02 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扩展imagick
2014/06/02 PHP
Yii查询生成器(Query Builder)用法实例教程
2014/09/04 PHP
php判断文件上传类型及过滤不安全数据的方法
2014/12/17 PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
2016/04/07 PHP
thinkphp5实现无限级分类
2019/02/18 PHP
PHP 构造函数和析构函数原理与用法分析
2020/04/21 PHP
javascript将数组插入到另一个数组中的代码
2013/01/10 Javascript
js兼容火狐获取图片宽和高的方法
2015/05/21 Javascript
javascript常见数据验证插件大全
2015/08/03 Javascript
javascript将DOM节点添加到文档的方法实例分析
2015/08/04 Javascript
通过bootstrap全面学习less
2016/11/09 Javascript
jQuery根据ID、CLASS、等获取对象的实例
2016/12/04 Javascript
详解AngularJS通过ocLazyLoad实现动态(懒)加载模块和依赖
2017/03/01 Javascript
vue.js利用defineProperty实现数据的双向绑定
2017/04/28 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
js实现一个简单的MVVM框架示例
2018/01/15 Javascript
Angular 利用路由跳转到指定页面的指定位置方法
2018/08/31 Javascript
vue项目中,main.js,App.vue,index.html的调用方法
2018/09/20 Javascript
微信小程序日历组件使用方法详解
2018/12/29 Javascript
详解vuex的简单todolist例子
2019/07/14 Javascript
微信小程序-API接口安全详解
2019/07/16 Javascript
浅谈Python的垃圾回收机制
2016/12/17 Python
对Python 3.2 迭代器的next函数实例讲解
2018/10/18 Python
python递归下载文件夹下所有文件
2019/08/31 Python
pytorch::Dataloader中的迭代器和生成器应用详解
2020/01/03 Python
paramiko使用tail实时获取服务器的日志输出详解
2020/12/06 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
对象的序列化(serialization)类是面向流的,应如何将对象写入到随机存取文件中
2015/06/22 面试题
雪山饭庄的创业计划书范文
2014/01/18 职场文书
元旦晚会主持词
2014/03/24 职场文书
校园元旦活动总结
2014/07/09 职场文书
教师三严三实心得体会
2014/10/11 职场文书
三好学生评语大全
2014/12/29 职场文书
元旦晚会主持词开场白
2015/05/28 职场文书
详解Html5项目适配系统深色模式方案总结
2021/04/14 HTML / CSS
position:sticky 粘性定位的几种巧妙应用详解
2021/04/24 HTML / CSS