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函数返回值实例分析
Jun 08 Python
python操作MySQL 模拟简单银行转账操作
Sep 27 Python
Python在不同目录下导入模块的实现方法
Oct 27 Python
python3使用scrapy生成csv文件代码示例
Dec 28 Python
python+Splinter实现12306抢票功能
Sep 25 Python
Pyqt5 实现跳转界面并关闭当前界面的方法
Jun 19 Python
python 爬虫百度地图的信息界面的实现方法
Oct 27 Python
使用Python实现微信拍一拍功能的思路代码
Jul 09 Python
filter使用python3代码进行迭代元素的实例详解
Dec 03 Python
python实现excel公式格式化的示例代码
Dec 23 Python
python 邮件检测工具mmpi的使用
Jan 04 Python
详解Python中的GIL(全局解释器锁)详解及解决GIL的几种方案
Jan 29 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
JavaScript 基础问答三
2008/12/03 Javascript
Javascript和Ajax中文乱码吐血版解决方案
2009/12/21 Javascript
jQuery 1.5最新版本的改进细节分析
2011/01/19 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
JS实现金额转换(将输入的阿拉伯数字)转换成中文的实现代码
2013/09/30 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
JavaScript判断数组重复内容的两种方法(推荐)
2016/06/06 Javascript
js实现hashtable的赋值、取值、遍历操作实例详解
2016/12/25 Javascript
AngularJs定时器$interval 和 $timeout详解
2017/05/25 Javascript
基于Vue过渡状态实例讲解
2017/09/14 Javascript
解决ng-repeat产生的ng-model中取不到值的问题
2018/10/02 Javascript
nodejs中用npm初始化来创建package.json的实例讲解
2018/10/10 NodeJs
antd组件Upload实现自己上传的实现示例
2018/12/18 Javascript
AntV F2和vue-cli构建移动端可视化视图过程详解
2019/10/08 Javascript
JS简单表单验证功能完整示例
2020/01/26 Javascript
2分钟实现一个Vue实时直播系统的示例代码
2020/06/05 Javascript
python爬虫使用cookie登录详解
2017/12/27 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
python微信聊天机器人改进版(定时或触发抓取天气预报、励志语录等,向好友推送)
2019/04/25 Python
解决paramiko执行命令超时的问题
2020/04/16 Python
基于opencv的selenium滑动验证码的实现
2020/07/24 Python
英国最大的在线运动补充剂商店:Discount Supplements
2017/06/03 全球购物
新西兰优惠网站:Treat Me
2019/07/04 全球购物
斯洛伐克最大的婴儿食品和用品网上商店:Feedo.sk
2020/12/21 全球购物
SQL Server笔试题
2012/01/10 面试题
关于圣诞节的广播稿
2014/01/26 职场文书
2014年医生工作总结
2014/11/21 职场文书
名人传读书笔记
2015/06/26 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
《为人民服务》教学反思
2016/02/20 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
JavaScript小技巧带你提升你的代码技能
2021/09/15 Javascript
Redis 持久化 RDB 与 AOF的执行过程
2021/11/07 Redis
一文带你探究MySQL中的NULL
2021/11/11 MySQL
mysql数据库隔离级别详解
2022/06/16 MySQL
win sever 2022如何占用操作主机角色
2022/06/25 Servers