ディレクトリをルート ディレクトリに展開せずに、.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)
filepathは、.zip ファイルのコレクションへのパスです。filenameは、抽出する NIFTI ファイルへの .zip ファイル内のパスです。
(編集)
エラーは 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')
真実
これを行う別の方法はありますか?