pythonfind_python实现find -name的功能

实现方式一:

使用pyhon的os模块,借助os.listdir();os.pah.isfile();os.path.isdir();os.path.join()等操作文件和目录的方法

思路:

从上往下,层层搜索,每一次迭代判断文件类型作为分叉点,

难点在于遇到逐层这里,用到了“递归”查询的概念#!/usr/bin/python

# -*- coding:utf8 -*-

import os

import os.path

def search(path,key):

for i in os.listdir(path):

if os.path.isfile(os.path.join(path,i)) and key in i:

print os.path.join(path,i)

if os.path.isdir(os.path.join(path,i)):

search(os.path.join(path,i),key)

pathword = raw_input(‘Enter path> ‘)

keyword = raw_input(‘Enter key> ‘)

search(pathword,keyword)实现方式二:

使用os模块的walk方法

walk(top, topdown=True, οnerrοr=None, followlinks=False)

Directory tree generator. 目录树的生成器,类似于tree命令,多次迭代实现

dirpath(字串), dirnames(列表), filenames(列表) -->元组

wKiom1c9ZTTwakudAAA8R-rdtHQ341.png#!/usr/bin/python

# -*- coding:utf8 -*-

import os

import os.path

def search(path,key):

for i in os.walk(path):

for j in i[2]:

if key in j:

print os.path.join(i[0],j)

pathword = raw_input(‘Enter path> ‘)

keyword = raw_input(‘Enter key> ‘)

search(pathword,keyword)

执行结果:[root@docker01 tmp]# python search2.py

Enter path> /etc 路径

Enter key> pass 关键词

/etc/passwd-

/etc/passwd

/etc/pam.d/password-auth-ac

/etc/pam.d/password-auth

/etc/pam.d/passwd

/etc/selinux/targeted/modules/active/modules/passenger.pp

/etc/security/opasswd

题目参考于廖老师的python教程:

原文地址:http://1064187464.blog.51cto.com/9108437/1775060

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值