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(列表) -->元組
#!/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教程:
總結
以上是生活随笔為你收集整理的pythonfind_python实现find -name的功能的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 暴利短剧上线8天充值过亿 剧情狗血俗套但
- 下一篇: 单侧鼻子突然流黄水是什么情况?