python 查找相应图片数据路径并调用exe程序

来源:互联网 发布:人为什么会哭 知乎 编辑:程序博客网 时间:2024/05/16 04:55

今天在处理实验室采集的图像数据的时候, 需要调用师兄的一个程序, 而师兄是将这个程序所需要处理的图片文件夹的路径写死在了exe文件里面, 导致每次计算一个文件夹中的图像数据的时候, 都需要重新编译一次, 非常费劲。
比较懒的我,于是想到, 是不是可以使用python, 将我所需要处理的图像文件夹提取出来, 然后把他们作为参数, 传递给师兄的程序呢?
于是我将师兄的exe程序重新编译了一下, 使他能够支持, 命令行参数。
然后使用python 的文件路径处理功能, 得到了相应的文件夹下, 所需要处理的文件夹的路径名称,使用python的 subprocess 模块的 Popen 调用exe, 实现了自动处理文件夹内子文件夹中图像数据的功能。
相应的待处理的文件夹格式:
这里写图片描述

代码如下:

#coding:utf-8'''Created on 2016-3-25description : 当前处理文件夹格式: 20160323 图片数据        ie, 有一个大的文件夹, 进入之后, 有left, right 两个相机分别拍摄的图像数据的文件夹        进入 left 文件夹, 下面有多个文件夹, 每个文件夹中存放拍摄的不同工位的图像数据, right 也类似@author: ThinkPad User'''import osimport subprocess# 查找所需要处理的所有子文件夹的路径class CFindDirs():    '''    classdocs    '''    ExeName = ''    __targetDir = ''    def __init__(self):        '''        Constructor        '''        self.ExeName = r'E:\system dir\Desktop\core_functions_dll\Release\core_functions_dll.exe'        self.__targetDir = 'E:\\system dir\\Desktop\\20160323_816_960\\'    ##########################################    ### 输入一个合法路径    ### 输出路径下所有文件夹的名称列表    #########################################     def __getSubDirs(self, path):        if os.path.isdir(path) == False:            print '当前输入路径有错误, 请重新设置'            return        listDirs = os.listdir(path)        listDirs_filter = []        for subdir in listDirs:            subdir_path = os.path.join(path, subdir)            if os.path.isdir(subdir_path) == False:                continue            listDirs_filter += [subdir_path]        return listDirs_filter    ##########################################    ### 输出路径下 所有图像文件夹的名称    #########################################         def setTargetDirPaths(self):        if os.path.isdir(self.__targetDir) == False:            print '当前输入路径有错误, 请重新设置'            return        listDirs = []        listDirsLeft = self.__getSubDirs(self.__targetDir + 'left')        listDirsRight = self.__getSubDirs(self.__targetDir + 'right')        listDirs += listDirsLeft        listDirs += listDirsRight        return listDirsif __name__ == '__main__':    s = CFindDirs()    listPath = s.setTargetDirPaths()    for subdir in listPath:        print '当前正在处理:' + subdir        cmd = '\"' + s.ExeName + '\"' + ' ' + '\"' + subdir + '\"'        ## 并发调用        subprocess.Popen(cmd)
0 0
原创粉丝点击