python文件批处理

#!/usr/bin/python
#coding:utf-8
import numpy as np
import 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] = temp



filePath="/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)#保存文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值