python实现find -name的功能,,实现方式一:使用py


实现方式一:

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

思路:

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

难点在于遇到逐层这里,用到了“递归”查询的概念

#!/usr/bin/python#-*-coding:utf8-*-importosimportos.pathdefsearch(path,key):foriinos.listdir(path):ifos.path.isfile(os.path.join(path,i))andkeyini:printos.path.join(path,i)ifos.path.isdir(os.path.join(path,i)):search(os.path.join(path,i),key)pathword=raw_input(‘Enterpath>‘)keyword=raw_input(‘Enterkey>‘)search(pathword,keyword)

实现方式二:

使用os模块的walk方法

walk(top, topdown=True, onerror=None, followlinks=False)

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

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

技术分享

#!/usr/bin/python#-*-coding:utf8-*-importosimportos.pathdefsearch(path,key):foriinos.walk(path):forjini[2]:ifkeyinj:printos.path.join(i[0],j)pathword=raw_input(‘Enterpath>‘)keyword=raw_input(‘Enterkey>‘)search(pathword,keyword)


执行结果:

[[email protected]tmp]#pythonsearch2.pyEnterpath>/etc路径Enterkey>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://www.liaoxuefeng.com/wiki/001374738125095c955c1e6d8bb493182103fac9270762a000/0013868321590543ff305fb9f9949f08d760883cc243812000#0

本文出自 “Zcy.gy” 博客,请务必保留此出处http://1064187464.blog.51cto.com/9108437/1775060

python实现find -name的功能

相关内容

    暂无相关文章

评论关闭