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 面向对象 成员的访问约束
Dec 23 Python
用python实现面向对像的ASP程序实例
Nov 10 Python
Python批量转换文件编码格式
May 17 Python
Python实现TCP协议下的端口映射功能的脚本程序示例
Jun 14 Python
python 获取网页编码方式实现代码
Mar 11 Python
浅谈Django REST Framework限速
Dec 12 Python
Python3 实现文件批量重命名示例代码
Jun 03 Python
python 公共方法汇总解析
Sep 16 Python
python根据时间获取周数代码实例
Sep 30 Python
python 实现图片上传接口开发 并生成可以访问的图片url
Dec 18 Python
Python使用openpyxl批量处理数据
Jun 23 Python
python工具dtreeviz决策树可视化和模型可解释性
Mar 03 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制作图型计数器的例子
2006/10/09 PHP
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
40个新鲜出炉的jQuery 插件和免费教程[上]
2012/07/24 Javascript
Javascript表格翻页效果实现思路及代码
2013/08/23 Javascript
JavaScript中奇葩的假值示例应用
2014/03/11 Javascript
原生js和jQuery随意改变div属性style的名称和值
2014/10/22 Javascript
javascript制作2048游戏
2015/03/30 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
javascript常用的方法整理
2015/08/20 Javascript
PHP+MySQL+jQuery随意拖动层并即时保存拖动位置实例讲解
2015/10/09 Javascript
JS实现的N多简单无缝滚动代码(包含图文效果)
2015/11/06 Javascript
谈谈javascript中使用连等赋值操作带来的问题
2015/11/26 Javascript
jQuery获取当前点击的对象元素(实现代码)
2016/05/19 Javascript
浅谈Node.js之异步流控制
2017/10/25 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
Vue 中的compile操作方法
2018/02/26 Javascript
详解Vue中组件的缓存
2019/04/20 Javascript
Vue路由的模块自动化与统一加载实现
2020/06/05 Javascript
Vue 组件复用多次自定义参数操作
2020/07/27 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
python批量提交沙箱问题实例
2014/10/08 Python
Pyhton中单行和多行注释的使用方法及规范
2016/10/11 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
解决pycharm 远程调试 上传 helpers 卡住的问题
2019/06/27 Python
python 环境搭建 及python-3.4.4的下载和安装过程
2019/07/20 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
Windows 下python3.8环境安装教程图文详解
2020/03/11 Python
解决matplotlib.pyplot在Jupyter notebook中不显示图像问题
2020/04/22 Python
纯CSS3绘制打火机动画火焰效果
2016/07/18 HTML / CSS
美国轮胎网站:Priority Tire
2018/11/28 全球购物
节水倡议书范文
2014/04/15 职场文书
2015年社区工作总结
2015/04/08 职场文书
2015年法律事务部工作总结
2015/07/27 职场文书
职工趣味运动会开幕词
2016/03/04 职场文书
2019年汽车租赁合同范本!
2019/08/12 职场文书
css之clearfix的用法深入理解(必看篇)
2023/05/21 HTML / CSS