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常见文件操作的函数示例代码
Nov 15 Python
深入理解Python 代码优化详解
Oct 27 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python 带有参数的装饰器实例代码详解
Dec 06 Python
Python字符串的常见操作实例小结
Apr 08 Python
windows下python安装pip方法详解
Feb 10 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
python的json包位置及用法总结
Jun 21 Python
谈谈python垃圾回收机制
Sep 27 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
Python制作运行进度条的实现效果(代码运行不无聊)
Feb 24 Python
Python Django模型详解
Oct 05 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
用ADODB来让PHP操作ACCESS数据库的方法
2006/12/31 PHP
不重新编译PHP为php增加openssl模块的方法
2011/06/14 PHP
php通过数组实现多条件查询实现方法(字符串分割)
2014/05/06 PHP
PHP冒泡算法详解(递归实现)
2014/11/10 PHP
无需数据库在线投票调查php代码
2016/07/20 PHP
PHP检测一个数组有没有定义的方法步骤
2019/07/20 PHP
使用JS画图之点、线、面
2015/01/12 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JavaScript去除数组里重复值的方法
2015/07/13 Javascript
JS实现超精简响应鼠标显示二级菜单代码
2015/09/12 Javascript
JavaScript学习笔记--常用的互动方法
2016/12/07 Javascript
Vue渲染函数详解
2017/09/15 Javascript
原生javascript实现的全屏滚动功能示例
2017/09/19 Javascript
vue技术分享之你可能不知道的7个秘密
2018/04/09 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
Vue左滑组件slider使用详解
2020/08/21 Javascript
关于element-ui表单中限制输入纯数字的解决方式
2020/09/08 Javascript
python服务器与android客户端socket通信实例
2014/11/12 Python
Python实现简单遗传算法(SGA)
2018/01/29 Python
Python wxPython库使用wx.ListBox创建列表框示例
2018/09/03 Python
详解python执行shell脚本创建用户及相关操作
2019/04/11 Python
python3发送邮件需要经过代理服务器的示例代码
2019/07/25 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
PyTorch如何搭建一个简单的网络
2020/08/24 Python
class类在python中获取金融数据的实例方法
2020/12/10 Python
python中threading和queue库实现多线程编程
2021/02/06 Python
基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码
2021/02/18 Python
css3一款3D字体带阴影效果的实现步骤
2013/03/20 HTML / CSS
跑鞋、网球鞋、网球拍、服装及装备:Holabird Sports
2016/09/19 全球购物
澳大利亚UGG工厂直销:Australian Ugg Boots
2017/10/14 全球购物
《每逢佳节倍思亲》教后反思
2014/04/19 职场文书
精神文明建设标语
2014/06/16 职场文书
使用nginx动态转换图片大小生成缩略图
2021/03/31 Servers
使用kubeadm命令行工具创建kubernetes集群
2022/03/31 Servers
【海涛dota解说】海涛小满开黑4v5被破两路翻盘潮汐第一视角解说
2022/04/01 DOTA