python文件批处理

来源:互联网 发布:福建纵腾网络年营业额 编辑:程序博客网 时间:2024/06/05 16:18
#!/usr/bin/python#coding:utf-8import numpy as npimport os# 关于中心点对称,输入为3维数组def gycenter(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ//2):        for y in range(0, coordY):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[coordZ-z-1, coordY-y-1, coordX-x-1]                f[coordZ-z-1, coordY-y-1, coordX-x-1] = temp# 关于x轴对称,输入为3维数组def gyx(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ // 2):        for y in range(0, coordY):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[coordZ - z - 1, coordY - y - 1, x]                f[coordZ - z - 1, coordY - y - 1, x] = temp# 关于y轴对称,输入为3维数组def gyy(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ // 2):        for y in range(0, coordY):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[coordZ - z - 1, y, coordX - x - 1]                f[coordZ - z - 1, y, coordX - x - 1] = temp# 关于z轴对称,输入为3维数组def gyz(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ // 2):        for y in range(0, coordY):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[z, coordY - y - 1, coordX - x - 1]                f[z, coordY - y - 1, coordX - x - 1] = temp# 关于x0y面对称,输入为3维数组def gy_x0y(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ // 2):        for y in range(0, coordY):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[coordZ - z - 1, y, x]                f[coordZ - z - 1, y, x] = temp# 关于x0z面对称,输入为3维数组def gy_x0z(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ):        for y in range(0, coordY // 2):            for x in range(0, coordX):                temp = f[z, y, x]                f[z, y, x] = f[z, coordY - y - 1, x]                f[z, coordY - y - 1, x] = temp# 关于y0z面对称,输入为3维数组def gy_y0z(f):    # 获得每一维度的长度    coordZ = f.shape[0]    coordY = f.shape[1]    coordX = f.shape[2]    for z in range(0, coordZ):        for y in range(0, coordY):            for x in range(0, coordX // 2):                temp = f[z, y, x]                f[z, y, x] = f[z, y, coordX - x - 1]                f[z, y, coordX - x - 1] = tempfilePath="/Volumes/ZJN/tianchi/data/train_nodule_py"filelist = os.listdir(filePath)#生成文件列表#批处理指定文件夹中的文件,以下是只生成中心对称变化的NPY文件#若要改成关于x轴对称只需要修改文件名和调用的函数名for files in filelist:    oldDir = os.path.join(filePath, files)    oldFile=np.load(oldDir)    gycenter(oldFile)# 利用gycenter函数生成做过中心对称变化的3D矩阵    newDir0 = os.path.basename(filePath) + "_cen"    fatherPath = os.path.dirname(filePath)    newDir = os.path.join(fatherPath, newDir0)#新的npy文件所在的目录    if not os.path.exists(newDir):#若该目录文件不存在则生成        os.mkdir(newDir)    newfileName = os.path.join(newDir, files)#新的文件的名字    np.save(newfileName, oldFile)#保存文件