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编写的最短路径算法
Mar 25 Python
python实现的文件同步服务器实例
Jun 02 Python
Python利用IPython提高开发效率
Aug 10 Python
python机器学习之贝叶斯分类
Mar 26 Python
numpy添加新的维度:newaxis的方法
Aug 02 Python
浅谈pycharm出现卡顿的解决方法
Dec 03 Python
numpy concatenate数组拼接方法示例介绍
May 27 Python
Python Django的安装配置教程图文详解
Jul 17 Python
python爬虫之爬取百度音乐的实现方法
Aug 24 Python
windows 10 设定计划任务自动执行 python 脚本的方法
Sep 11 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
Anaconda安装pytorch和paddle的方法步骤
Apr 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
用Socket发送电子邮件(利用需要验证的SMTP服务器)
2006/10/09 PHP
PHP与C#分别格式化文件大小的代码
2011/05/14 PHP
php define的第二个参数使用方法
2013/11/04 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
Thinkphp5 微信公众号token验证不成功的原因及解决方法
2017/11/12 PHP
关于viewport,Ext.panel和Ext.form.panel的关系
2009/05/07 Javascript
有关DOM元素与事件的3个谜题
2010/11/11 Javascript
浅谈关于JavaScript的语言特性分析
2013/04/11 Javascript
JavaScript 实现类的多种方法实例
2013/05/01 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
JavaScript的setAttribute兼容性问题解决方法
2013/11/11 Javascript
jQuery web 组件 后台日历价格、库存设置的代码
2016/10/14 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
微信小程序tabBar模板用法实例分析【附demo源码下载】
2017/11/28 Javascript
用vscode开发vue应用的方法步骤
2019/05/06 Javascript
JavaScript实现多张图片放大镜效果示例【不限定图片尺寸,rem单位】
2019/05/14 Javascript
JS图片懒加载的优点及实现原理
2020/01/10 Javascript
Python CSV模块使用实例
2015/04/09 Python
Python字典操作简明总结
2015/04/13 Python
Python实现的单向循环链表功能示例
2017/11/10 Python
对python调用RPC接口的实例详解
2019/01/03 Python
python根据时间获取周数代码实例
2019/09/30 Python
Python控制鼠标键盘代码实例
2020/12/08 Python
Python解析m3u8拼接下载mp4视频文件的示例代码
2021/03/03 Python
Lululemon加拿大官网:加拿大知名体育服装零售商
2019/04/12 全球购物
Ashford台湾:以折扣价提供奢华的男女用表款
2019/12/04 全球购物
介绍一下write命令
2012/09/24 面试题
《小池塘》教学反思
2014/02/28 职场文书
《天游峰的扫路人》教学反思
2014/04/25 职场文书
不忘国耻振兴中华演讲稿
2014/05/14 职场文书
Python 把两层列表展开平铺成一层(5种实现方式)
2021/04/07 Python
Python代码风格与编程习惯重要吗?
2021/06/03 Python
SpringBoot实现quartz定时任务可视化管理功能
2021/08/30 Java/Android
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
MySQL8.0升级的踩坑历险记
2021/11/01 MySQL
浅析Python中的随机采样和概率分布
2021/12/06 Python