1

ディレクトリをルート ディレクトリに展開せずに、.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')

真実

これを行う別の方法はありますか?

4

1 に答える 1