基于Pycharm的文件批处理1(python脚本笔记记录)——复制所需文件到指定文件夹中,文件夹按照被试编号命名

前言

现在磁共振数据的被试量越来越多,所扫描的图像也就更多,量小的几十个,量大的成百上千,而且不论是DPABI、cat12、SPM12还是其他工具包,都需要将数据整理成合适的格式才能方便做数据处理,手动处理必将费时费力,还容易出现差错,此时用脚本编代码批处理便是最好的选择。初用python语言,感觉良好,用它来做文件的批处理的确很强大,简单明了,所以这个系列写出来便是为了记录自己的脚本,害怕那天换电脑了,这些东西便不存在了,多麻烦,这对于自己来说,未来都是宝藏,对于各位读者来说也是提供便利,小编的脚本主要围绕脑科学方面的数据进行处理,希望对读此文的读者有所增益。

一、代码实现功能介绍

小编的的.nii文件本来是都在一个文件夹中的,如下图所示:
在这里插入图片描述
想要实现的功能便是提取这些nii文件对应的被试编号sub-xxxxx,作为对应的被试文件夹名,并将nii文件移动到对应被试编号的文件中,做好这个之后就能放到FunImg文件夹中直接用DPABI进行预处理了,程序运行结果如下两图所示:
在这里插入图片描述
在这里插入图片描述

二、代码块简介

第一步:读取文件名

import os
import shutil

DIR = "D:\\DATA\\test"


def Movefile(DIR):                                                     # 定义函数
    j = 0
    for root1, path1, filename in os.walk(DIR):
        for i in range(len(filename)):
            if os.path.splitext(filename[i])[1] == '.nii':      # 这里注意filename是个元组,splitext方法的时候只能是字符串,从后往前查找”.“
                j += 1
                dir_name = filename[i].split('_')[0]            # split是从前往后查找目标字符用来分割字符串
                print(dir_name)

第二步:设定目标文件路径

                dir_path = os.path.join(DIR, dir_name)              # 在目标文件夹下添加
                if os.path.exists(dir_path) == 0:                   # 如果该文件不存在,则创建文件,反之不创建
                    os.mkdir(dir_path)
                old_path = os.path.join(DIR, filename[i])       # 定义目标文件路径
                new_path = os.path.join(dir_path, filename[i])  # 定义目标文件存放路径

第三步:复制文件,若想直接移动文件,可将copyfile改成move

                shutil.copyfile(old_path, new_path)                     # 将目标文件移动到存放路径中

    print("总共有", j, "图层文件被复制!")

第四步:调用函数,运行

Movefile(DIR)                                                          # 调用自定义函数

PS:
若有任何问题欢迎指出,或者有更加简单的处理方式也欢迎提出建议一起分享。

  • 9
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值