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 相关文章推荐
pyside写ui界面入门示例
Jan 22 Python
python网络爬虫采集联想词示例
Feb 11 Python
Windows下Python2与Python3两个版本共存的方法详解
Feb 12 Python
python3获取两个日期之间所有日期,以及比较大小的实例
Apr 08 Python
Go/Python/Erlang编程语言对比分析及示例代码
Apr 23 Python
python 函数内部修改外部变量的方法
Dec 18 Python
解决python3.5 正常安装 却不能直接使用Tkinter包的问题
Feb 22 Python
Django框架静态文件使用/中间件/禁用ip功能实例详解
Jul 22 Python
python能做什么 python的含义
Oct 12 Python
Python print不能立即打印的解决方式
Feb 19 Python
用Python提取PDF表格的方法
Apr 11 Python
Python NumPy灰度图像的压缩原理讲解
Aug 04 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
浅析echo(),print(),print_r(),return之间的区别
2013/11/27 PHP
浅谈PHP调用Webservice思路及源码分享
2014/06/04 PHP
yii2.0之GridView自定义按钮和链接用法
2014/12/15 PHP
PHP学习笔记之php文件操作
2016/06/03 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP面向对象程序设计之接口的继承定义与用法详解
2018/12/20 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
jQuery页面滚动浮动层智能定位实例代码
2011/08/23 Javascript
js 距离某一时间点时间是多少实现代码
2013/10/14 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
JavaScript动态修改网页元素内容的方法
2015/03/21 Javascript
jQuery使用toggleClass方法动态添加删除Class样式的方法
2015/03/26 Javascript
js基础知识(公有方法、私有方法、特权方法)
2015/11/06 Javascript
javascript获取wx.config内部字段解决微信分享
2016/03/09 Javascript
js控制li的隐藏和显示实例代码
2016/10/15 Javascript
Angular2 多级注入器详解及实例
2016/10/30 Javascript
js实现右键菜单功能
2016/11/28 Javascript
Canvas实现动态的雪花效果
2017/02/13 Javascript
Vue父组件如何获取子组件中的变量
2019/07/24 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
[01:28:31]《加油DOTA》真人秀 第五期
2014/09/01 DOTA
基于Django的乐观锁与悲观锁解决订单并发问题详解
2019/07/31 Python
PyCharm2019安装教程及其使用(图文教程)
2019/09/29 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
幼儿园实习自我鉴定
2013/12/15 职场文书
宣传策划类求职信范文
2014/01/31 职场文书
幼儿园老师寄语
2014/04/03 职场文书
会议通知格式范文
2015/04/15 职场文书
2016干部作风整顿心得体会
2016/01/22 职场文书
Golang 语言控制并发 Goroutine的方法
2021/06/30 Golang
SQL实现LeetCode(197.上升温度)
2021/08/07 MySQL
Win10多屏显示如何设置?Win10电脑多屏显示设置操作方法
2022/07/07 数码科技