DICOMデータをシーケンス名でフォルダ分けする。
DICOMデータはあらかじめフォルダごとに分けられているが、名前は降られていない状態。
import os ws = "work spaceのフォルダ名" os.chdir(ws) import shutil import pydicom fd_main = "DICOMデータが入っているフォルダ名" fds = os.listdir(fd_main) fds = [fd for fd in fds if not fd.startswith('.')] fd_destination = "D:/MEGA\MEGAsync/ws_20240331_rename_folder/rename_head_MRI" if not os.path.exists(fd_destination): os.mkdir(fd_destination) for fd in fds: tmp_pt_fd = os.path.join(fd_main, fd) fds_sq = os.listdir(tmp_pt_fd) for fd_sq in fds_sq: tmp_sq_fd = os.path.join(tmp_pt_fd, fd_sq) fls = os.listdir(tmp_sq_fd) tmp_dcm_fl = os.path.join(tmp_sq_fd, fls[0]) dcm = pydicom.dcmread(tmp_dcm_fl) sq_name = fd_sq + "_" + dcm.SeriesDescription # processing "T2*" if '*' in sq_name: sq_name = sq_name.replace("*", "_star_") new_sq_fd_name = os.path.join(fd_destination, fd, sq_name) # copy if not os.path.exists(new_sq_fd_name): shutil.copytree(tmp_sq_fd, new_sq_fd_name) print(f"Folder '{tmp_sq_fd}' copied to '{new_sq_fd_name}'.") else: print(f"Folder '{new_sq_fd_name}' already exists. Skipping copying.") print("Processing finish")