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 相关文章推荐
在Django框架中设置语言偏好的教程
Jul 27 Python
Python编写电话薄实现增删改查功能
May 07 Python
python实现简单购物商城
May 21 Python
win系统下为Python3.5安装flask-mongoengine 库
Dec 20 Python
利用Python查看目录中的文件示例详解
Aug 28 Python
Pandas中Series和DataFrame的索引实现
Jun 27 Python
Python 3 实现定义跨模块的全局变量和使用教程
Jul 07 Python
Python with用法:自动关闭文件进程
Jul 10 Python
python 中xpath爬虫实例详解
Aug 26 Python
pandas 对group进行聚合的例子
Dec 27 Python
django 多数据库及分库实现方式
Apr 01 Python
python网络编程之五子棋游戏
May 14 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 星际争霸
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
用php+javascript实现二级级联菜单的制作
2008/05/06 PHP
Views rows style模板重写代码
2011/05/16 PHP
header导出Excel应用示例
2014/01/24 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
文字不间断滚动(上下左右)实例代码
2013/04/21 Javascript
用js传递value默认值的示例代码
2014/09/11 Javascript
jQuery实现列表内容的动态载入特效
2015/08/08 Javascript
jQuery使用zTree插件实现树形菜单和异步加载
2016/02/25 Javascript
JavaScript String 对象常用方法总结
2016/04/28 Javascript
jQuery封装的屏幕居中提示信息代码
2016/06/08 Javascript
纯JavaScript 实现flappy bird小游戏实例代码
2016/09/27 Javascript
angularjs 中$apply,$digest,$watch详解
2016/10/13 Javascript
详解HTML5 使用video标签实现选择摄像头功能
2017/10/25 Javascript
详解基于Koa2开发微信二维码扫码支付相关流程
2018/05/16 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
js获取 gif 的帧数的代码实例
2019/09/10 Javascript
ant design实现圈选功能
2019/12/17 Javascript
Node.js学习之内置模块fs用法示例
2020/01/22 Javascript
《javascript设计模式》学习笔记一:Javascript面向对象程序设计对象成员的定义分析
2020/04/07 Javascript
基于JavaScript或jQuery实现网站夜间/高亮模式
2020/05/30 jQuery
Python人脸识别初探
2017/12/21 Python
Python操作Mongodb数据库的方法小结
2019/09/10 Python
python字典setdefault方法和get方法使用实例
2019/12/25 Python
Python实现计算长方形面积(带参数函数demo)
2020/01/18 Python
tensorflow 实现数据类型转换
2020/02/17 Python
工作会议主持词
2014/03/17 职场文书
医院院务公开实施方案
2014/05/03 职场文书
大型公益活动策划方案
2014/08/20 职场文书
募捐感谢信
2015/01/22 职场文书
宣传部部长竞选稿
2015/11/21 职场文书
爱心捐款倡议书:点燃希望,传递温暖
2019/11/04 职场文书
pytorch中的model=model.to(device)使用说明
2021/05/24 Python
elementui的el-popover修改样式不生效的解决
2021/06/30 Javascript
sql server偶发出现死锁的解决方法
2022/04/10 SQL Server