diff --git a/skimage/io/util.py b/skimage/io/util.py index 74158cac..8cda882e 100644 --- a/skimage/io/util.py +++ b/skimage/io/util.py @@ -24,10 +24,11 @@ def file_or_url_context(resource_name): """Yield name of file from the given resource (i.e. file or url).""" if is_url(resource_name): _, ext = os.path.splitext(resource_name) - with tempfile.NamedTemporaryFile(delete=False, suffix=ext) as f: - u = urlopen(resource_name) - f.write(u.read()) try: + with tempfile.NamedTemporaryFile(delete=False, suffix=ext) as f: + u = urlopen(resource_name) + f.write(u.read()) + # f must be closed before yielding yield f.name finally: os.remove(f.name)