1. 程式人生 > >python-------------------查詢檔名包含指定字串的檔案,列印完整路徑

python-------------------查詢檔名包含指定字串的檔案,列印完整路徑

# -*- 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-------------------查詢檔名包含指定字串檔案列印完整路徑

# -*- coding: utf-8 -*- # Author :Gogh # @Time :2017/11/14 22:37 # @Email :[email protected] #

Python:編寫函式能在當前目錄以及子目錄下查詢檔名包含指定字串檔案並打印出完整路徑

絕對路徑問題參考連結: os模組參考連結: 文字編輯器:Notepad++ #編寫一個search(s)的函式,能在當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串的檔案,並打印出完整路徑 #如果要編譯檔案,請把註釋刪除再編譯執行 #如果字元格式出錯,請在

python中編寫一個程式能在當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串檔案並打印出相對路徑—— python學習筆記

1. 題目: 編寫一個程式,能在當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串的檔案,並打印出相對路徑。 2. 解答 import os # 引入os "編寫一個程式,能在當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串的檔案,並打印出相對路徑" def se

python 檔案和目錄 當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串檔案並打印出相對路徑

廖雪峰python教程中的<操作檔案和目錄>下的第二題目的解答, 網址為: http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253

編寫一個search(s)的函式將當前目錄及其所有子目錄下查詢檔名包含指定字串檔案列印完整路徑

最後的練習:編寫一個search(s)的函式,能在當前目錄以及當前目錄的所有子目錄下查詢檔名包含指定字串的檔案,並打印出完整路徑 在編寫的過程中,對目錄遍歷的寫法有疑惑。經過除錯和搜尋,定位到 os.path.isfile有問題: 最後完成結果:

shell 用grep查詢是否包含指定字串

array=(abc 123 erg cba) for file in ${array[@]}; do echo $file | grep -q 2 if [ $? = 0 ]; then

python實操(1):搜尋指定目錄(檔案)下包含指定字串檔案及行號

#!/usr/bin/python #encoding:utf-8 # Filename : findString.py #author by :morespeech #python2.7 #platform:pycharm import os import re c

python遍歷某目錄的下兩層目錄查詢指定型別檔案複製到上層資料夾

問題描述:當前目錄包含多層下級目錄,且下級目錄中各存在一個.avi檔案,每次訪問需要點選到每個下級目錄訪問一個檔案,操作複雜,且不夠直觀,所以寫了個指令碼將各個下級目錄下的avi檔案統一複製到上層目錄,直觀展示和查閱。 問題截圖 當前存在多個目錄 每個目錄裡面

sql語句查詢某欄位中包含指定字串的資料列表完全匹配欄位中逗號中間的字串資料

查詢出,使用者表中name欄位完全包含小明的資料資訊 User表 id name userInfo 1 小明,明明 很帥 2 小明,李明 3 明天,李強 SELECT * FROM `User` where concat(',

python批量獲取某路徑資料夾及子資料夾下的指定型別檔案並按原資料夾結構批量儲存處理後的檔案

因為是把自己成功執行的整個程式碼按幾部分截取出來的,所以每一小節程式碼不一定能單獨執行,特此說明。 1.獲取某路徑資料夾及子資料夾下的指定pcm型別檔案的全部路徑 import os def eachfile(filepath):     pathdi

列出指定目錄下所有副檔名為.txt的檔案及出現的問題

/*7.列出指定目錄下所有副檔名為.txt的檔案*/ /* System.out.println(file.isDirectory());當file是一個沒有後綴的檔案時,這裡會輸出false

使用 grep 查詢所有包含指定文字的檔案

目標:本文提供一些關於如何搜尋出指定目錄或整個檔案系統中那些包含指定單詞或字串的檔案。難度:容易約定:# - 需要使用 root 許可權來執行指定命令,可以直接使用 root 使用者來執行也可以使用 sudo 命令$ - 可以使用普通使用者來執行指定命令案例非遞迴搜尋包含指定

python時戳轉換成字串日期並形成時間序列檔案

######### Get all performance data of one object def get_one_object_perfor_data(object_id,dst_dir,src_file_name): df = pd.read_csv(s

Java檔名包含中文的檔案壓縮後文件名亂碼問題完美解決方案

以下類從jdk的src.zip裡提取 ZipConstants.java   ZipEntry.java   ZipOutputStream.java  eclipse中新建工程,放入上述三個檔案 1.ZipOutputStream.java檔案改名為CNZipOutpu

php 字串中是否包含指定字串的多種方法

編寫程式的時候,經常要處理字串,最基本就是字串的查詢,在php檢測字串中是否包含指定字串可以使用正則,如果你對正則不瞭解,那麼有幾個函式可以為您提供方便。 1. strstr strstr() 函式搜尋一個字串在另一個字串中的第一次出現。 該函式返回字串的其餘部分(從匹配點)。如果未找到所搜

shell指令碼替換包含指定字串的行

shell指令碼替換包含指定字串的行 啥也不是說了 直接上程式, 程式: #!/bin/bash #查詢的字串 str1=“string1” #新字串 newstr=“string2” #被替換的檔名 filename=“wu.c” #獲取指定字串的行號 line=sed

【複製指定目錄下的指定型別檔案並修改後綴名】

package com.companyname.common.test; import java.io.*; /** * @Description * @Author Created by shusheng. * @Email [email protected] * @Date 2

wget下載檔案指定檔名指定下載檔案存放的目錄

這是命令,很多部落格都寫了基礎的命令,但是這個坑沒人說  哎   那就是wget下載時既要指定新檔名又要指定下載目錄  我是這麼寫的 wget -O /data/1537186226/sadsad.jpg http://n.sinaimg.cn/news/transfor

【C#】判斷字串中是否包含指定字串,contains與indexof方法效率問題

1 class Program 2 { 3 private const int N = 10000000; 4 private static Stopwatch watch = new Stopwatch(); 5 static v