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利用elaphe制作二维条形码实现代码
May 25 Python
python实现自动更换ip的方法
May 05 Python
Python3 循环语句(for、while、break、range等)
Nov 20 Python
100行python代码实现跳一跳辅助程序
Jan 15 Python
Python/ArcPy遍历指定目录中的MDB文件方法
Oct 27 Python
python每天定时运行某程序代码
Aug 16 Python
python之yield和Generator深入解析
Sep 18 Python
pytorch方法测试——激活函数(ReLU)详解
Jan 15 Python
Python3 元组tuple入门基础
Feb 09 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
构建高效的python requests长连接池详解
May 02 Python
Python3爬虫关于识别检验滑动验证码的实例
Jul 30 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)
2013/06/21 PHP
阿里云PHP SMS短信服务验证码发送方法
2017/07/11 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
PHP 7.1中AES加解密方法mcrypt_module_open()的替换方案
2017/10/17 PHP
用js实现随机返回数组的一个元素
2007/08/13 Javascript
jQuery:节点(插入,复制,替换,删除)操作
2013/03/04 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
常用的几段javascript代码分享
2014/03/25 Javascript
jquery删除数据记录时的弹出提示效果
2014/05/06 Javascript
node.js中的forEach()是同步还是异步呢
2015/01/29 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
Javascript实现苹果悬浮虚拟按钮
2016/04/10 Javascript
Bootstrap项目实战之首页内容介绍(全)
2016/04/25 Javascript
jquery.tableSort.js表格排序插件使用方法详解
2020/08/12 Javascript
详解Angular中的自定义服务Service、Provider以及Factory
2017/04/22 Javascript
node中modules.exports与exports导出的区别
2018/06/08 Javascript
搭建vue开发环境
2018/07/19 Javascript
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
Python字典操作详细介绍及字典内建方法分享
2018/01/04 Python
Pycharm2017版本设置启动时默认自动打开项目的方法
2018/10/29 Python
Python操作rabbitMQ的示例代码
2019/03/19 Python
pyqt弹出新对话框,以及关闭对话框获取数据的实例
2019/06/18 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
python二进制读写及特殊码同步实现详解
2019/10/11 Python
原来我一直安装 Python 库的姿势都不对呀
2019/11/11 Python
Python读取csv文件实例解析
2019/12/30 Python
django下创建多个app并设置urls方法
2020/08/02 Python
Python 添加文件注释和函数注释操作
2020/08/09 Python
如何利用python生成MD5并去重
2020/12/07 Python
澳大利亚制造的蜡烛和扩散器:Glasshouse Fragrances
2018/05/20 全球购物
工程总经理工作职责
2013/12/09 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
工业设计毕业生自荐信
2014/04/13 职场文书
学校班班通实施方案
2014/06/11 职场文书
导师工作推荐信
2015/03/27 职场文书
创业计划书之网吧
2019/10/10 职场文书