欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python搜索指定類型文件以及批量移動文件程序詳解

 更新時間:2022年03月04日 09:20:15   作者:侯小啾  
這篇文章主要給大家介紹了關(guān)于python搜索指定類型文件以及批量移動文件程序的相關(guān)資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

搜索文件并移動的python程序

使用python寫一個程序,其功能滿足:可以搜索指定目錄下的某類型的文件,并可以移動到指定的目錄。

                   請?zhí)砑訄D片描述

1.示例文件及路徑準備

作為示例,在D盤中放一個名為pic1的文件夾,在該文件夾中放入兩個png圖片,并在pic1內(nèi)再創(chuàng)建一個文件夾,里邊也隨便放兩張png圖片。如圖所示。

在D盤的ABC文件夾中,創(chuàng)建一個名為pic2的文件夾。

本程序要求:搜索目錄"D://pic1"下的所有文件擴展名為png的圖片。并將其全部移動至"D://ABC/pic2"目錄下。

2.代碼示例

分別定義一個搜索函數(shù)和一個批量移動函數(shù)。

搜索函數(shù)需要傳入的參數(shù)為root:要搜索的目錄;target為目標文件類型(即擴展名)。

搜索函數(shù)輸出 由目標文件path+文件名構(gòu)成的列表。

批量移動函數(shù)傳入的file_list參數(shù)是一個列表,形如搜索函數(shù)的輸出結(jié)果,元素為帶有path的文件名。dest為需要移動到的目錄。

import os, shutil

file_list = []

# 搜索函數(shù)
def search_file(root, target):
    for file in os.listdir(root):
        path = root
        try:
            path = path + os.sep + file
            if os.path.isdir(path):
                search_file(path, target)
            else:
                if file.split('.')[-1] == target:
                    file_list.append(path)
        except PermissionError as e:
            print(e)
    return file_list


# 批量移動函數(shù)
def move_file(file_list, dest):
    for file in file_list:
        try:
            shutil.move(file, dest)
        except shutil.Error as e:
            print(e)


# 寫入目標參數(shù)root,
def main():
    root = "D:\\pic1"
    target = "png"
    dest_dir = "D:\\ABC\\pic2"
    result = search_file(root, target)
    print(result)
    move_file(result, dest_dir)


if __name__ == '__main__':
    main()

如圖,目標文件被成功搜索出并轉(zhuǎn)移:

  • 其中搜索函數(shù)需要用到遞歸的寫法,對文件夾中的不定數(shù)的文件夾進行遍歷。
  • 且在其中使用到了異常處理的寫法,是為了避免遇到不可訪問的系統(tǒng)文件夾,導致程序運行中斷。(除C盤外,這樣的文件夾通常不會在二級中,比如在D盤的根目錄下可能會有。這里的異常處理寫法可以有效解決該問題。)

3.命令行寫法

將上述代碼改寫文能在命令行傳參、調(diào)用的形式。

首先將目標文件放回原路徑,放好。

import sys
import os, shutil
file_list = []

# 定義一個搜索功能的函數(shù)
def search_file(root, file_name):
    for file in os.listdir(root):
        path = root
        try:
            path = path + os.sep + file
            if os.path.isdir(path):
                search_file(path, file_name)
            else:
                if file.split('.')[-1] == file_name:
                    file_list.append(path)
        except PermissionError:
            pass
    return file_list

def move_file(file_list, dest):
    for file in file_list:
        shutil.move(file, dest)

def main(argv):
    root = argv[1]
    target = argv[2]
    dest_dir = argv[3]
    result = search_file(root, target)
    print(result)
    move_file(result, dest_dir)

if __name__ == '__main__':
    main(sys.argv)

打開cmd,目錄調(diào)整好后,輸入py文件名(這里為demo.py)及依次傳入三個參數(shù)。

即執(zhí)行命令:

代碼成功運行,目標文件位置被更改。

總結(jié)

到此這篇關(guān)于python搜索指定類型文件以及批量移動文件程序詳解的文章就介紹到這了,更多相關(guān)python搜索指定類型文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • django利用request id便于定位及給日志加上request_id

    django利用request id便于定位及給日志加上request_id

    這篇文章主要介紹了django利用request id便于定位及給日志加上request_id的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用django具有一定的參考學習價值,需要的朋友們下面來一起看看吧
    2018-08-08
  • python3.7將代碼打包成exe程序并添加圖標的方法

    python3.7將代碼打包成exe程序并添加圖標的方法

    這篇文章主要介紹了python3.7將代碼打包成exe程序并添加圖標的方法,本文給大家介紹的非常詳細,具有一定的參考借鑒價值 ,需要的朋友可以參考下
    2019-10-10
  • Python?lambda函數(shù)保姆級使用教程

    Python?lambda函數(shù)保姆級使用教程

    本文和你一起探索Python中的lambda函數(shù),讓你以最短的時間明白這個函數(shù)的原理。也可以利用碎片化的時間鞏固這個函數(shù),讓你在處理工作過程中更高效
    2022-06-06
  • python檢查指定文件是否存在的方法

    python檢查指定文件是否存在的方法

    這篇文章主要介紹了python檢查指定文件是否存在的方法,涉及Python基于os模塊判定文件的相關(guān)技巧,非常簡單實用,需要的朋友可以參考下
    2015-07-07
  • python輸出國際象棋棋盤的實例分享

    python輸出國際象棋棋盤的實例分享

    在本篇文章里小編給大家整理的是一篇關(guān)于python輸出國際象棋棋盤的實例詳解,有興趣的朋友們可以參考下。
    2020-11-11
  • Django框架之中間件MiddleWare的實現(xiàn)

    Django框架之中間件MiddleWare的實現(xiàn)

    這篇文章主要介紹了Django框架之中間件MiddleWare的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-12-12
  • python3獲取當前目錄的實現(xiàn)方法

    python3獲取當前目錄的實現(xiàn)方法

    這篇文章主要介紹了python3獲取當前目錄的實現(xiàn)方法,文中給大家提到了python3獲取當前目錄和上級目錄的方法,需要的朋友可以參考下
    2019-07-07
  • 關(guān)于sys.stdout和print的區(qū)別詳解

    關(guān)于sys.stdout和print的區(qū)別詳解

    今天小編就為大家分享一篇關(guān)于sys.stdout和print的區(qū)別詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • pygame游戲之旅 添加碰撞效果的方法

    pygame游戲之旅 添加碰撞效果的方法

    這篇文章主要為大家詳細介紹了pygame游戲之旅的第7篇,教大家如何添加碰撞的效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • python獲取當前目錄路徑和上級路徑的實例

    python獲取當前目錄路徑和上級路徑的實例

    下面小編就為大家分享一篇python獲取當前目錄路徑和上級路徑的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04

最新評論