1. 程式人生 > 程式設計 >Python資料夾批處理操作程式碼例項

Python資料夾批處理操作程式碼例項

如圖所示,有一個test資料夾,裡面有3個子資料夾,每個子資料夾中有若干圖片檔案

Python資料夾批處理操作程式碼例項

Python資料夾批處理操作程式碼例項

#場景1 讀取一個資料夾中所有檔案,存入到一個list表中

Python資料夾批處理操作程式碼例項

#coding:utf-8
from __future__ import absolute_import
from __future__ import division
from __future__ import print_function

import numpy as np
import os
import sys
import math
import numpy
import time
import argparse
import random
import cv2


def findAllfile(path,allfile):
  filelist = os.listdir(path) 
  for filename in filelist: 
    filepath = os.path.join(path,filename) 
    if os.path.isdir(filepath):
      #print(filepath) 
      findAllfile(filepath,allfile) 
    else: 
      allfile.append(filepath) 
  return allfile 

#場景1 讀取一個資料夾中所有檔案,存入到一個list表中
def process1(srcpath,imgprocess_result):

  #遍歷影象資料夾
  image_files = findAllfile(srcpath,[])
  #image_files為所有檔案的list

  #判斷 目錄是否存在,存在就刪除,並且重建
  if os.path.exists(imgprocess_result):
    os.system("rm -rf " + imgprocess_result)
  if not os.path.isdir(imgprocess_result): # Create the log directory if it doesn't exist
    os.makedirs(imgprocess_result)

  #是否隨機打亂檔案順序
  #random.shuffle(image_files)

  #遍歷所有
  for facepath in image_files:
    print("原始檔案路徑:",facepath)
    #獲取檔名稱
    data_split = facepath.strip().split("/")
    image_floder = data_split[-2]
    print("檔案所在目錄:",image_floder)
    image_name = data_split[-1]
    print("檔名稱:",image_name)

    image_newfloder = imgprocess_result + "/" + image_floder
    #判斷 目錄是否存在,不存在就重建
    if not os.path.isdir(image_newfloder): # Create the log directory if it doesn't exist
      os.makedirs(image_newfloder)

    image_newpath = image_newfloder + "/" + image_name
    print("處理後的檔案路徑:",image_newpath)

    #開始處理檔案
    #..............
    #
    #


#場景2 首先讀取一個資料夾中的所有子目錄,然後依次遍歷各個子目錄的所有檔案
def process2(srcpath,imgprocess_result):
  #找出所有的子目錄
  filelist = os.listdir(srcpath) 
  for filename in filelist: 
    filepath = os.path.join(srcpath,filename) 
    if os.path.isdir(filepath):
      print("原始子目錄路徑:",filepath)
      image_files = findAllfile(filepath,[])
      for facepath in image_files:
        print("原始檔案路徑:",facepath)
        #獲取檔名稱
        data_split = facepath.strip().split("/")
        image_floder = data_split[-2]
        print("檔案所在目錄:",image_floder)
        image_name = data_split[-1]
        print("檔名稱:",image_name)

        image_newfloder = imgprocess_result + "/" + image_floder
        #判斷 目錄是否存在,不存在就重建
        if not os.path.isdir(image_newfloder): # Create the log directory if it doesn't exist
          os.makedirs(image_newfloder)

        image_newpath = image_newfloder + "/" + image_name
        print("處理後的檔案路徑:",image_newpath)

        #開始處理檔案
        #..............
        #
        #

if __name__ == '__main__':
  #原始資料夾
  srcpath = "/DATA/share/publicdata/face/dmt_face/test"
  #處理完畢後存放檔案
  imgprocess_result = "/DATA/share/publicdata/face/dmt_face/imgprocess_result"

  print("方法1\n\n\n\n")
  process1(srcpath,imgprocess_result)
  print("\n\n\n方法2")
  process2(srcpath,imgprocess_result)

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。