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

yipeiwu_com7年前Python基础

使用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 命令的-u参数详解

缘起: 今天在看arcface的训练代码,在shell脚本中运行python 命令时后面加了-u 参数(python -u xx.py),于是对这个参数进行了下小研究。 准备知识 用网上...

Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】

本文实例讲述了Python函数基础用法。分享给大家供大家参考,具体如下: 一、什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数。 特点: 1、约束函数的调用者必须按照Kye...

python学生管理系统学习笔记

本文实例为大家分享了python学生管理系统的具体代码,供大家参考,具体内容如下 基于列表存储的学生管理系统,实现如下功能 ================== 学生管理系统 1、添加...

Python中使用插入排序算法的简单分析与代码示例

问题描述 将一组随机排列的数字重新按照从小到大的顺序排列。 插入算法 每次从数组中取一个数字,与现有数字比较并插入适当位置。 如此重复,每次均可以保持现有数字按照顺序排列,直到数字取完,...

基于Python的图像数据增强Data Augmentation解析

基于Python的图像数据增强Data Augmentation解析

1.1 简介 深层神经网络一般都需要大量的训练数据才能获得比较理想的结果。在数据量有限的情况下,可以通过数据增强(Data Augmentation)来增加训练样本的多样性, 提高模型鲁...