我试图读取.zip中的NIFTI文件,而不必将目录解压缩到根目录。更具体地说,我使用的是ADNI数据库,文件按subjectID存储在单独的.zip文件中。在.zip文件中有与该主题相关的所有数据,我想提取NIFTI文件(。广州)在.zip中,而不解压缩文件。在
目前我有以下代码片段
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)
filepath是指向.zip文件集合的路径。filename是.zip文件中要提取的NIFTI文件的路径。在
(编辑)
错误似乎来自于nibabel加载函数。然后进行功能检查
^{pr2}$在测试os.path.exists(文件名)函数独立我发现。在
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')
False
但是,此路径是从我试图打开的文件复制/粘贴的。在我看来,错误出现是由于文件路径中的.zip,因为
os.path.exists(r'C:/Users/eee/workspace_python/Image Reconstruction/data/ADNI/MRI data/100206_3T_Structural_unproc.zip')
True
有别的办法吗?在
请参阅python: Open file from zip without temporary extracting it的公认答案这说明了如何在不提取文件的情况下从zipfile中读取数据(当然,您需要足够的RAM来处理文件内容)。在
相关问题 更多 >
编程相关推荐