diff --git a/common/__init__.py b/common/__init__.py index d934c95fc154d52c188585632c9e2f53e09967ea..58e2fbce4c6109c01aaad9c3a2a77e13751e4aa0 100644 --- a/common/__init__.py +++ b/common/__init__.py @@ -1,4 +1,6 @@ +import errno import logging +import os import requests @@ -7,6 +9,14 @@ logging_levels = {'CRITICAL': logging.CRITICAL, 'ERROR': logging.ERROR, 'WARNING def download_file(url, path): + if not os.path.exists(os.path.dirname(path)): + try: + os.makedirs(os.path.dirname(path)) + except OSError as exc: + # На случай параллельного создания директории + if exc.errno != errno.EEXIST: + raise + with requests.get(url, allow_redirects=True, stream=True) as r: r.raise_for_status() with open(path, 'wb') as f: