| # Simple Python script to download a file. Used as a fallback | |
| # when other more reliable methods fail. | |
| # | |
| from __future__ import print_function | |
| import sys | |
| try: | |
| from requests import get | |
| except ImportError: | |
| try: | |
| from urllib.request import urlretrieve | |
| USING = "urllib.request.urlretrieve" | |
| except ImportError: | |
| try: | |
| from urllib import urlretrieve | |
| USING = "urllib.retrieve" | |
| except ImportError: | |
| print("Python at", sys.executable, "is not suitable", | |
| "for downloading files.", file=sys.stderr) | |
| sys.exit(2) | |
| else: | |
| USING = "requests.get" | |
| def urlretrieve(url, filename): | |
| r = get(url, stream=True) | |
| r.raise_for_status() | |
| with open(filename, 'wb') as f: | |
| for chunk in r.iter_content(chunk_size=1024): | |
| f.write(chunk) | |
| return filename | |
| if __name__ == '__main__': | |
| if len(sys.argv) != 3: | |
| print("Usage: urlretrieve.py [url] [filename]", file=sys.stderr) | |
| sys.exit(1) | |
| URL = sys.argv[1] | |
| FILENAME = sys.argv[2] | |
| print("Downloading from", URL, "to", FILENAME, "using", USING) | |
| urlretrieve(URL, FILENAME) |