我正在尝试读取 .zip 中的 NIFTI 文件,而无需将目录提取到根目录。更具体地说,我正在使用 ADNI 数据库,文件按 subjectID 存储在单独的 .zip 文件中。在 .zip 文件中包含与该主题相关的所有数据,我想从 .zip 中提取 NIFTI 文件(.nii.gz)而不提取文件。
目前我有以下代码片段
def openNIFTI(filename):
return nib.load(filename).get_data()
zip_filename = filepath + str(subject_id) + '_3T_Structural_unproc.zip'
filename = str(subject_id) + '/unprocessed/3T/T1w_MPR1/' + str(subject_id) + '_3T_T1w_MPR1.nii.gz'
file = zf.extract(filename)
data = openNIFTI(file)
文件路径是 .zip 文件集合的路径。文件名是 .zip 文件中我要提取的 NIFTI 文件的路径。
(编辑)
似乎错误来自 nibabel 加载功能。然后功能检查
if not op.exists(filename):
在独立测试 os.path.exists(filename) 函数后,我发现了这一点。
os.path.exists(r'C:/Users/eee/workspace_python/Image Reconstruction/data/ADNI/MRI data/100206_3T_Structural_unproc.zip/100206/unprocessed/3T/T1w_MPR1/100206_3T_T1w_MPR1.nii.gz')
错误的
但是,此路径是从我尝试打开的文件中复制/粘贴的。在我看来,由于文件路径中的 .zip 出现错误,因为
os.path.exists(r'C:/Users/eee/workspace_python/Image Reconstruction/data/ADNI/MRI data/100206_3T_Structural_unproc.zip')
真的
还有另一种方法吗?