From f5705bc7f4908b273e941dd5b4aafe3cd154117e Mon Sep 17 00:00:00 2001 From: Joris Cadow Date: Fri, 2 Nov 2018 17:06:41 +0100 Subject: [PATCH] #46: close tmpfile before subprocess call --- dicom2nifti/compressed_dicom.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/dicom2nifti/compressed_dicom.py b/dicom2nifti/compressed_dicom.py index 8937641..e72ffc2 100644 --- a/dicom2nifti/compressed_dicom.py +++ b/dicom2nifti/compressed_dicom.py @@ -13,12 +13,18 @@ def read_file(dicom_file, defer_size=None, stop_before_pixels=False, force=False): if _is_compressed(dicom_file, force): - with tempfile.NamedTemporaryFile() as fp: - _decompress_dicom(dicom_file, output_file=fp.name) - return pydicom.read_file(fp, - defer_size=None, # We can't defer + # https://github.com/icometrix/dicom2nifti/issues/46 + try: + with tempfile.NamedTemporaryFile(delete=False) as fp: + fp.close() + _decompress_dicom(dicom_file, output_file=fp.name) + + return pydicom.read_file(fp.name, + defer_size=None, # We can't defer stop_before_pixels=stop_before_pixels, force=force) + finally: + os.remove(fp.name) dicom_header = pydicom.read_file(dicom_file, defer_size=defer_size,