python批处理原始核磁数据用于DPABI

师姐给了一个任务,要我把核磁室导出来的数据自动化处理到能直接丢进去DPABI,这对我来说简直是小事一桩嘛。
原始文件夹结构:

Patients ——> FunRaw ——> sub001 + sub002 + sub003… sub001 ——> EP2D_BOLD_MOCO_0003 EP2D_BOLD_MOCO_0003 ——> 241个XXXXX.IMA 和241个nii

目标文件夹样式结构:

Patients ——> FunRaw ——> Sub001 + Sub002 + Sub003… Sub001 ——> 241个nii

因此,我的编程思路是:先从文件夹里提取出241个nii文件,然后移动到sub文件夹下面,接着替换sub变成Sub,随后删除掉多余的EP2D_BOLDXX文件,最后就是写一个for循环,自动处理完patients和health。

其实这件事儿在linux下很容易完成,linux的文件夹操作非常容易。不过我现在手上用的是windows,没有装双系统和子系统,刚好我最近python也学的差不多了,于是就用python写了一个自动化处理脚本给师姐。

打开我滴记事本,重命名为py后缀,然后手撸代码:

#!/usr/bin/python
########### 导入区 ###########
from pathlib import Path
import os
import shutil
########### 工作区 ########
work_space = r'f:/clancy原始数据/patients/T1Raw/'  
########### 更换工作目录 ########
os.chdir(work_space) 
########### 获取文件名称 ########
subjects = os.listdir(path='.') #获取受试者名称
######## 循环体:开始自动处理文件 ######## 
for subject in subjects :
    target = Path(work_space, subject)  #拼接路径 ../../sub001      
    _middle_folder = os.listdir(target) #获取中间层名字 EPO                                
    target2 = Path(target, _middle_folder[0]) #拼接路径 ../../sub001/EPO                   
    nii_files = list(Path(target2).glob("*.nii")) #获取所有nii文件的绝对路径                 
    [nii_file.rename(Path(target, nii_file.name)) for nii_file in nii_files ] #移动nii文件  
    shutil.rmtree(target2) #删除不要的文件
################### 文件夹重命名 sub001 --> Sub001 ######## 
for subject_old in subjects :
    target_old = Path(work_space, subject_old)  #旧文件夹绝对路径
    target_old.rename(Path(work_space, subject_old.title()))  #旧文件夹重命名
################### End ######## 

打开python3.9,运行脚本文件,2秒钟结束50个受试者的文件整理,效率MAX。

心得:
1.python的pathlib模块很好用,比os模块感觉要好一点。
2.windows下,要学会用python处理数据,用R做统计分析。
3.文件路径就是该文件,直接修改文件路径名称,就相当于mv命令。
“一切皆是文件”,我感觉我对这句话理解的更加深刻了。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

clancy_wu

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值