mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 13:41:24 +00:00 
			
		
		
		
	
		
			
	
	
		
			40 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
		
		
			
		
	
	
			40 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
|   | # 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) |