# -*- coding: utf-8 -*-
# Author :Gogh
# @Time :2017/11/14 22:37
# @Email :[email protected]
# 編寫一個search(s)的函數,將當前目錄及其所有子目錄下
# 查找文件名包含指定字符串的文件,打印完整路徑
import os, logging, pdb
def search(s):
rootdir = 'C:/ ' # 指明被遍歷的文件夾
#三個參數:分別返回1.父目錄 2.所有文件夾名字(不含路徑) 3.所有文件名字
for parent, dirnames, filenames in os.walk(rootdir):
for filename in filenames: # 輸出文件信息
# print "filename is:" + filename
if filename.find(s) != -1:
print "the full path of the file is:" + os.path.abspath(os.path.join(parent,filename)) # 輸出文件路徑信息
if __name__ == '__main__':
search('.log')
# 兩種辦法實現查找指定目錄及子目錄下所有包含關鍵字的文件,並打印出路徑
logging.basicConfig(level=logging.DEBUG)
def search_dir(path, L):
current_dir = os.listdir(path)
# pdb.set_trace()
for n in current_dir:
# pdb.set_trace()
new_path = os.path.join(path, n)
if os.path.isfile(new_path): # 需傳入路徑而非僅僅文件名,否則是FALSE
logging.debug('%s is a file.' % n)
L.append(new_path)
else:
search_dir(new_path, L)
return L
def search(s):
L = search_dir('.', [])
# pdb.set_trace()
for file in L:
# pdb.set_trace()
if file.find(s) != -1:
logging.info('找到包含%s的文件路徑:%s' % (s, os.path.abspath(file)))
# os.path.abspath(url) 並非返回url真正完整的絕對路徑,只是將當前目錄與url進行join操作
# 例如,當前目錄爲 D:/workplace
# url是 test.txt,實際是在 ./aaa/test.txt
# 但該函數返回的是 D:/workplace/test.txt
if __name__ == '__main__':
search('test')
python-------------------查找文件名包含指定字符串的文件,打印完整路徑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.