Python实现Linux的find命令实例分享

 更新时间:2017年06月04日 10:17:23   作者:linuxidc  
本文给大家分享的是使用python简单实现模拟linux的find命令的实例代码,推荐给大家,希望大家能够喜欢

使用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下opencv使用hough变换检测直线与圆

    Python下opencv使用hough变换检测直线与圆

    在数字图像中,往往存在着一些特殊形状的几何图形,像检测马路边一条直线,检测人眼的圆形等等,有时我们需要把这些特定图形检测出来,本文就详细的介绍了一下方法
    2021-06-06
  • Python OpenCV学习之图形绘制总结

    Python OpenCV学习之图形绘制总结

    在图像的任务中,不管是图像检测还是图像识别,我们都需要通过绘制图形和绘制文字对处理的结果进行说明,本篇就详细介绍下OpenCV中的图形的绘制,感兴趣的可以了解一下
    2022-01-01
  • python安装并使用virtualenv管理包的详细过程

    python安装并使用virtualenv管理包的详细过程

    本文主要介绍了Python的安装过程和如何使用virtualenv管理包,首先,用户需要访问Python官网下载安装包,并运行安装程序,安装完成后,在命令行输入Python,显示安装的Python版本号,即表示安装成功,感兴趣的朋友一起看看吧
    2024-10-10
  • python tkinter 设置窗口大小不可缩放实例

    python tkinter 设置窗口大小不可缩放实例

    这篇文章主要介绍了python tkinter 设置窗口大小不可缩放实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • 简单谈谈Python面向对象的相关知识

    简单谈谈Python面向对象的相关知识

    由于马上就要期末考试了,正在抓紧时间复习 所以这一篇就拖了很久,抱歉啦~ 今天会说说: 属性私有,方法私有,重写,魔术方法,需要的朋友可以参考下
    2021-01-01
  • python属于跨平台语言码

    python属于跨平台语言码

    在本篇文章里小编给大家整理的是关于python是否跨平台的相关知识点文章,有兴趣的朋友们可以参考下。
    2020-06-06
  • Python Flask的request对象使用详解

    Python Flask的request对象使用详解

    本文介绍Flask request对象,一个完整的HTTP请求,包括客户端向服务端发送的Request请求和服务器端发送Response响应.为了能方便访问获取请求及响应报文信息,Flask框架提供了一些内建对象,下面就来说一下Flask针对请求提供内建对象reques,需要的朋友可以参考一下
    2023-02-02
  • django-初始配置(纯手写)详解

    django-初始配置(纯手写)详解

    这篇文章主要介绍了django-初始配置(纯手写)详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • Django使用unittest模块进行单元测试过程解析

    Django使用unittest模块进行单元测试过程解析

    这篇文章主要介绍了Django使用unittest模块进行单元测试过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08
  • 解决Pycharm界面的子窗口不见了的问题

    解决Pycharm界面的子窗口不见了的问题

    今天小编就为大家分享一篇解决Pycharm界面的子窗口不见了的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-01-01

最新评论