verbosity control in download_url
This commit is contained in:
Родитель
20314c9d87
Коммит
eedfca42ba
|
@ -39,30 +39,37 @@ class DownloadProgressBar():
|
||||||
|
|
||||||
|
|
||||||
def download_url(url, destination_filename=None, progress_updater=None,
|
def download_url(url, destination_filename=None, progress_updater=None,
|
||||||
force_download=False, temp_dir=None):
|
force_download=False, output_dir=None, verbose=False):
|
||||||
"""
|
"""
|
||||||
Download a URL to a temporary file
|
Download a URL, optionally downloading to a temporary file
|
||||||
"""
|
"""
|
||||||
|
|
||||||
if progress_updater is None:
|
# if progress_updater is None:
|
||||||
progress_updater = DownloadProgressBar()
|
# progress_updater = DownloadProgressBar()
|
||||||
|
|
||||||
if temp_dir is None:
|
|
||||||
temp_dir = os.path.join(tempfile.gettempdir(),'ai4e')
|
|
||||||
os.makedirs(temp_dir,exist_ok=True)
|
|
||||||
|
|
||||||
# This is not intended to guarantee uniqueness, we just know it happens to guarantee
|
# This is not intended to guarantee uniqueness, we just know it happens to guarantee
|
||||||
# uniqueness for this application.
|
# uniqueness for this application.
|
||||||
if destination_filename is None:
|
if destination_filename is None:
|
||||||
|
|
||||||
|
if output_dir is None:
|
||||||
|
output_dir = os.path.join(tempfile.gettempdir(),'ai4e')
|
||||||
|
os.makedirs(output_dir,exist_ok=True)
|
||||||
|
|
||||||
url_as_filename = url.replace('://', '_').replace('.', '_').replace('/', '_')
|
url_as_filename = url.replace('://', '_').replace('.', '_').replace('/', '_')
|
||||||
destination_filename = \
|
destination_filename = \
|
||||||
os.path.join(temp_dir,url_as_filename)
|
os.path.join(output_dir,url_as_filename)
|
||||||
|
|
||||||
if (not force_download) and (os.path.isfile(destination_filename)):
|
if (not force_download) and (os.path.isfile(destination_filename)):
|
||||||
|
if verbose:
|
||||||
print('Bypassing download of already-downloaded file {}'.format(os.path.basename(url)))
|
print('Bypassing download of already-downloaded file {}'.format(os.path.basename(url)))
|
||||||
return destination_filename
|
return destination_filename
|
||||||
|
|
||||||
|
if verbose:
|
||||||
print('Downloading file {}'.format(os.path.basename(url)),end='')
|
print('Downloading file {}'.format(os.path.basename(url)),end='')
|
||||||
urllib.request.urlretrieve(url, destination_filename, progress_updater)
|
urllib.request.urlretrieve(url, destination_filename, progress_updater)
|
||||||
assert(os.path.isfile(destination_filename))
|
assert(os.path.isfile(destination_filename))
|
||||||
nBytes = os.path.getsize(destination_filename)
|
nBytes = os.path.getsize(destination_filename)
|
||||||
|
if verbose:
|
||||||
print('...done, {} bytes.'.format(nBytes))
|
print('...done, {} bytes.'.format(nBytes))
|
||||||
|
|
||||||
return destination_filename
|
return destination_filename
|
||||||
|
|
Загрузка…
Ссылка в новой задаче