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 基础学习教程
Feb 08 Python
35个Python编程小技巧
Apr 01 Python
Python 编码处理-str与Unicode的区别
Sep 06 Python
Python无损音乐搜索引擎实现代码
Feb 02 Python
python实现SOM算法
Feb 23 Python
python调用API实现智能回复机器人
Apr 10 Python
详解Python with/as使用说明
Dec 13 Python
对Django中内置的User模型实例详解
Aug 16 Python
Python队列、进程间通信、线程案例
Oct 25 Python
Python数据持久化存储实现方法分析
Dec 21 Python
在python中实现求输出1-3+5-7+9-......101的和
Apr 02 Python
Python3使用Selenium获取session和token方法详解
Feb 16 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
论建造顺序的重要性
2020/03/04 星际争霸
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
php生成短网址示例
2014/05/05 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
2014/06/25 PHP
php中simplexml_load_file函数用法实例
2014/11/12 PHP
PHP间隔一段时间执行代码的方法
2014/12/02 PHP
PHP实现仿Google分页效果的分页函数
2015/07/29 PHP
PHP 等比例缩放图片详解及实例代码
2016/09/18 PHP
php将print_r处理后的数据还原为原始数组的解决方法
2016/11/02 PHP
php实现微信企业付款到个人零钱功能
2018/10/09 PHP
$.get获取一个文件的内容示例代码
2013/09/11 Javascript
js防止表单重复提交的两种方法
2013/09/30 Javascript
原生js实现日期联动
2015/01/12 Javascript
纯js实现手风琴效果代码
2020/04/17 Javascript
微信小程序 vidao实现视频播放和弹幕的功能
2016/11/02 Javascript
基于vue配置axios的方法步骤
2017/11/09 Javascript
Thinkjs3新手入门之如何使用静态资源目录
2017/12/06 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
Vue兼容ie9的问题全面解决方案
2018/06/19 Javascript
jQuery实现的导航条点击后高亮显示功能示例
2019/03/04 jQuery
vue中使用elementUI组件手动上传图片功能
2019/12/13 Javascript
JS使用setInterval计时器实现挑战10秒
2020/11/08 Javascript
javascript代码实现简易计算器
2021/01/25 Javascript
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
Python使用plotly绘制数据图表的方法
2017/07/18 Python
对Python中plt的画图函数详解
2018/11/07 Python
Python Subprocess模块原理及实例
2019/08/26 Python
Python对Tornado请求与响应的数据处理
2020/02/12 Python
日本土著品牌,综合型购物网站:Cecile
2016/08/23 全球购物
置业顾问岗位职责
2014/03/02 职场文书
我的求职择业计划书
2014/04/04 职场文书
县委党的群众路线教育实践活动工作情况报告
2014/10/25 职场文书
2014年安全员工作总结
2014/11/13 职场文书
优秀党员主要事迹范文
2015/11/05 职场文书
如何利用golang运用mysql数据库
2022/03/13 Golang
【海涛解说】史上最给力比赛,挑战DOTA极限
2022/04/01 DOTA