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之大话题小函数(1)
Oct 10 Python
使用Python读写及压缩和解压缩文件的示例
Jul 08 Python
python 接口_从协议到抽象基类详解
Aug 24 Python
Python使用装饰器进行django开发实例代码
Feb 06 Python
python读取中文txt文本的方法
Apr 12 Python
如何用Python做一个微信机器人自动拉群
Jul 03 Python
Python实现字符串中某个字母的替代功能
Oct 21 Python
如何基于Python制作有道翻译小工具
Dec 16 Python
tensorflow2.0保存和恢复模型3种方法
Feb 03 Python
Python实现括号匹配方法详解
Feb 10 Python
python模拟斗地主发牌
Apr 22 Python
python3.9和pycharm的安装教程并创建简单项目的步骤
Feb 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中去掉字符串首尾空格的方法
2012/05/19 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
php实现的IMEI限制的短信验证码发送类
2015/05/05 PHP
ThinkPHP2.x防范XSS跨站攻击的方法
2015/09/25 PHP
Yii2中使用asset压缩js,css文件的方法
2016/11/24 PHP
PHP实现的下载远程文件类定义与用法示例
2017/07/05 PHP
safari下载文件自动加了html后缀问题
2018/11/09 PHP
jquery复选框CHECKBOX全选、反选
2008/08/30 Javascript
5秒后跳转到另一个页面的js代码
2013/10/12 Javascript
node.js解决获取图片真实文件类型的问题
2014/12/20 Javascript
JavaScript仿静态分页实现方法
2015/08/04 Javascript
JS实现灵巧的下拉导航效果代码
2015/08/25 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
深入理解vue路由的使用
2017/03/24 Javascript
详解Vue结合后台的列表增删改案例
2018/08/21 Javascript
在layui中select更改后生效的方法
2019/09/05 Javascript
将RGB值转换为灰度值的简单算法
2019/10/09 Javascript
vue请求数据的三种方式
2020/03/04 Javascript
[02:12]2015国际邀请赛 SHOWOPEN
2015/08/05 DOTA
python模拟新浪微博登陆功能(新浪微博爬虫)
2013/12/24 Python
python使用socket进行简单网络连接的方法
2015/04/29 Python
python3实现ftp服务功能(服务端 For Linux)
2017/03/24 Python
python实现TF-IDF算法解析
2018/01/02 Python
python实现多线程网页下载器
2018/04/15 Python
Python实用工具FuckIt.py介绍
2019/07/02 Python
详解rem 适配布局
2018/10/31 HTML / CSS
澳洲小众品牌的集合网站:BNKR
2018/02/23 全球购物
德国足球商店:OUTFITTER
2019/05/06 全球购物
Liu Jo西班牙官网:意大利服装品牌
2019/09/11 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
优秀大学生推荐信范文
2013/11/28 职场文书
护理工作感言
2014/01/16 职场文书
关于教师节的广播稿
2014/09/10 职场文书
晚自修旷课检讨书怎么写
2014/11/17 职场文书
员工手册编写范本
2015/05/14 职场文书
详解在OpenCV中如何使用图像像素
2022/03/03 Python