Python文件夹批处理操作代码实例

如图所示,有一个test文件夹,里面有3个子文件夹,每个子文件夹中有若干图片文件

#场景1 读取一个文件夹中所有文件,存入到一个list表中

#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)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • python使用writerows写csv文件产生多余空行的处理方法

    初次接触python,学艺不精,第一次实战写一个文本处理的小程序时便遇到了头疼的问题. 先看代码: 生成的.CSV文件每两行之间都会多出一行空格(如下图),具体原因可参看点击打开链接 with open('E:\\test.csv','wt')as fout: cout=csv.DictWriter(fout,list_attrs_head )#list_attrs_head头属性列表 cout.writeheader() cout.writerows(list_words) 上面链接中的这位大

  • Python实现PyPDF2处理PDF文件的方法示例

    实际应用中,可能会涉及处理 pdf 文件,PyPDF2 就是这样一个库,使用它可以轻松的处理 pdf 文件,它提供了读,割,合并,文件转换等多种操作. 文档地址:http://pythonhosted.org/PyPDF2/ PyPDF2 安装 PyCharm 安装:File -> Default Settings -> Project Interpreter PdfFileReader 构造方法: PyPDF2.PdfFileReader(stream,strict = True,warnd

  • python批量处理txt文件的实例代码

    通过python对多个txt文件进行处理 读取路径,读取文件 获取文件名,路径名 对响应的文件夹名字进行排序 对txt文件内部的数据相应的某一列/某一行进行均值处理 写入到事先准备好的Excel文件中 关闭Excel文件 #import numpy as np import pandas as pd import os folder = 'D:/log/A190820C31N82' def all_files_in_a_folder_iter(folder): import os for roo

  • Python使用pyautocad+openpyxl处理cad文件示例

    本文实例讲述了Python使用pyautocad+openpyxl处理cad文件.分享给大家供大家参考,具体如下: 示例1: from pyautocad import Autocad import openpyxl wb=openpyxl.load_workbook('./cads.xlsx') sheet=wb.get_sheet_by_name('Sheet1') data=[] pset=[] acad=Autocad(create_if_not_exists=True) acad.pr

  • Python使用Pandas对csv文件进行数据处理的方法

    今天接到一个新的任务,要对一个140多M的csv文件进行数据处理,总共有170多万行,尝试了导入本地的MySQL数据库进行查询,结果用Navicat导入直接卡死....估计是XAMPP套装里面全默认配置的MySQL性能不给力,又尝试用R搞一下吧结果发现光加载csv文件就要3分钟左右的时间,相当不给力啊,翻了翻万能的知乎发现了Python下的一个神器包:Pandas(熊猫们?),加载这个140多M的csv文件两秒钟就搞定,后面的分类汇总等操作也都是秒开,太牛逼了!记录一下这次数据处理的过程: 使用

  • Python 处理文件的几种方式

    在这个世界上,人们每天都在用 Python 完成着不同的工作.而文件操作,则是大家最常需要解决的任务之一.使用 Python,你可以轻松为他人生成精美的报表,也可以用短短几行代码快速解析.整理上万份数据文件. 当我们编写与文件相关的代码时,通常会关注这些事情:我的代码是不是足够快?我的代码有没有事半功倍的完成任务? 在这篇文章中,我会与你分享与之相关的几个编程建议.我会向你推荐一个被低估的 Python 标准库模块.演示一个读取大文件的最佳方式.最后再分享我对函数设计的一点思考. 下面,让我们进

  • python遍历文件目录、批量处理同类文件

    本文实例为大家分享了python遍历文件目录.批量处理同类文件的具体代码,供大家参考,具体内容如下 目录操作 1.获取当前目录 import os curr_path=os.path.dirname(__file__) #返回当前文件所在的目录,即当前运行的脚本所在父目录 print curr_path 运行示例 (1)使用os.path.dirname(__file__)时,是针对运行时对所给程序脚本的路径来获取父目录的,即截取你输入的脚本路径的所在目录名称,如上图示例,输入绝对路径时返回绝对

  • python数据处理之如何选取csv文件中某几行的数据

    前言 有些人看到这个问题觉得不是问题,是嘛,不就是df.col[]函数嘛,其实忽略了一个重点,那就是我们要省去把csv文件全部读取这个过程,因为如果在面临亿万级别的大规模数据,得到的结果就是boom,boom,boom. 我们要使用一下现成的函数里面的参数nrows,和skiprows,一个代表你要读几行,一个代表你从哪开始读,这就可以了,比如从第3行读取4个 示例代码 import pandas as pd df = pd.DataFrame({'a':[1,2,3,4,5,6,7,8,9],

  • Python文件夹批处理操作代码实例

    如图所示,有一个test文件夹,里面有3个子文件夹,每个子文件夹中有若干图片文件 #场景1 读取一个文件夹中所有文件,存入到一个list表中 #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 impo

  • python文件及目录操作代码汇总

    前言 在python中,内置了文件(file)对象,通过一些内置的方法就可以实现对文件的操作,例如open()方法创建一个文件对象,write()方法向文件写入内容. 一.文件基本操作 1.创建和打开文件 想要操作文件,先要创建或者打开指定文件并创建文件对象,可以通过内置函数open()来实现. file = open(file_name[,mode[,buffering]]) ''' file_name : 要创建或者打开的文件名 mode : 用于指定文件打开的方式 ''' mode参数的参

  • Java遍历文件夹及子目录代码实例

    主要逻辑 使用scanner类获取输入的目录,并创建文件对象. 新建一个遍历文件夹的方法,参数是已创建的文件对象,递归调用自己. import java.io.File; public class BianLi{ public static void huoQuMuLu(File a) { File[] fd = a.listFiles(); //获取目录数组 for(int i=0;i<fd.length;i++){ //将文件对象数组转换为字符数组,并输出数组 System.out.prin

  • Python txt文件常用读写操作代码实例

    python读取txt文件 #方式一: file = r'D:\test.txt' with open(file, 'rb+') as f: #可读可写二进制,文件若不存在就创建 data = f.readlines() #读取文本所有内容,并且以数列的格式返回结果,一般配合for in使用 print(data) #方式二: file = r'D:\test.txt' f = open(file,"rb+") #可读可写二进制,文件若不存在就创建 data = f.readlines

  • Python数据结构dict常用操作代码实例

    dict是python中的常用数据结构,应该尽量掌握其使用方法 字典是另一种可变容器模型,且可存储任意类型对象. 字典的每个键值 key=>value 对用冒号 : 分割,每个键值对之间用逗号 , 分割,整个字典包括在花括号 {} 中 代码如下 """ 初始化一个dict的四种方式: 1. dict() -> 创建一个空的dict 2. dict(mapping) -> new dictionary initialized from a mapping ob

  • Python socket服务常用操作代码实例

    套接字(socket)是一个抽象层,应用程序可以通过它发送或接收数据,可对其进行像对文件一样的打开.读写和关闭等操作. 1. 实现客户端发送字符,服务器返回大写的字符: 服务器: import socketserver class MyTCPHandler(socketserver.BaseRequestHandler): # 通过类的继承,实现 def handle(self): # 重写父类的handle方法,所有的操作都在此方法中 while True: # 循环,不停的接收从客户端来的数

  • Python Opencv轮廓常用操作代码实例解析

    1.颜色空间转换 使用cv2.cvtColor(input_image ,flag),flag为转换类型 常用的转换类型有: BGR和灰度图的转换使用 cv2.COLOR_BGR2GRAY BGR和HSV的转换使用 cv2.COLOR_BGR2HSV img_gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) 2.二值化 ret, dst = cv2.threshold(src, thresh, maxval, type) src:表示的是图片源(灰度图)

  • Python FTP两个文件夹间的同步实例代码

    具体代码如下所示: # -*- coding: utf-8 -*- ''''''' ftp自动检测源文件夹的更新,将源文件夹更新的内容拷贝到目标文件夹中 使用树的层序遍历算法,支持深度目录拷贝 ''' import os from ftplib import FTP import os,sys,string,datetime,time import shutil import socket class MyUpdateMonitor(object): def __init__(self, hos

  • python文件与目录操作实例详解

    本文实例分析了python文件与目录操作的方法.分享给大家供大家参考,具体如下: 关于python文件操作的详细说明,大家可以参考前一篇<python文件操作相关知识点总结整理> 官方API:os-Miscellaneous operating system interfaces 下面是demo示例: import re import os import time #图片文件路径 image_path = 'E:\\test\\20130627_140132Hongten.jpg' #文件夹路

  • windows搜索空文件夹的批处理程序代码实例

    有时候需要搜索查找空文件夹,一个方法是将浏览器旁的目录树打开,挨个查看,如果有成百上千个目录呢,以人力去找就太费时费力了,本文介绍一个批处理程序,可以代替人力完成这个任务. 代码 ::Search for empty dirs. ::by lvfeng, Mar 11,2009 @echo off setlocal enabledelayedexpansion color 1E echo 本程序搜索空目录 echo. echo by www.lfhacks.com echo. echo 按任意键

随机推荐