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正规则表达式学习指南
Aug 02 Python
pycharm安装图文教程
May 02 Python
windows下Virtualenvwrapper安装教程
Dec 13 Python
Python实现读取及写入csv文件的方法示例
Jan 12 Python
Python selenium抓取微博内容的示例代码
May 17 Python
深入flask之异步非堵塞实现代码示例
Jul 31 Python
Python实现定时自动关闭的tkinter窗口方法
Feb 16 Python
Python调用Windows API函数编写录音机和音乐播放器功能
Jan 05 Python
音频处理 windows10下python三方库librosa安装教程
Jun 20 Python
Django如何与Ajax交互
Apr 29 Python
七个非常实用的Python工具包总结
Jun 15 Python
用Python实现屏幕截图详解
Jan 22 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中的cookie不用刷新就生效的方法
2012/02/04 PHP
一些php项目中比较通用的php自建函数的详解
2013/06/06 PHP
PHP实现求连续子数组最大和问题2种解决方法
2017/12/26 PHP
js 加载并解析XML字符串的代码
2009/12/13 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
jquery ajax 简单范例(界面+后台)
2013/11/19 Javascript
js实现通用的微信分享组件示例
2014/03/10 Javascript
jquery使整个div区域可以点击的方法
2015/06/24 Javascript
js中跨域方法原理详解
2015/07/19 Javascript
AngularJS入门教程之XHR和依赖注入详解
2016/08/18 Javascript
原生js实现jquery函数animate()动画效果的简单实例
2016/08/21 Javascript
AngularJS Phonecat实例讲解
2016/11/21 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
微信小程序 Nginx环境配置详细介绍
2017/02/14 Javascript
微信小程序 支付功能开发错误总结
2017/02/21 Javascript
js防刷新的倒计时代码 js倒计时代码
2017/09/06 Javascript
js中的闭包学习心得
2018/02/06 Javascript
JS实现的合并两个有序链表算法示例
2019/02/25 Javascript
[46:50]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
python环境路径配置以及命令行运行脚本
2019/04/02 Python
Python numpy大矩阵运算内存不足如何解决
2020/11/19 Python
解决PDF 转图片时丢文字的一种可能方式
2021/03/04 Python
css3气泡 css3关键帧动画创建的动态通知气泡
2013/02/26 HTML / CSS
女士时装鞋:Chinese Laundry
2018/08/29 全球购物
香港连卡佛百货官网:Lane Crawford
2019/09/04 全球购物
linux面试题参考答案(8)
2015/08/11 面试题
2014年大学生党课心得体会范文
2014/03/29 职场文书
《有趣的发现》教学反思
2014/04/15 职场文书
吨的认识教学反思
2014/04/27 职场文书
民政局副局长民主生活会个人整改措施
2014/10/04 职场文书
干部考察材料范文
2014/12/24 职场文书
小班上学期幼儿评语
2014/12/30 职场文书
教师廉洁自律个人总结
2015/02/10 职场文书
小学推普周活动总结
2015/05/07 职场文书
利用html+css实现菜单栏缓慢下拉效果的示例代码
2021/03/30 HTML / CSS
Python编程super应用场景及示例解析
2021/10/05 Python