url.py 988 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import os
  2. try:
  3. from urllib.request import urlopen as _urlopen
  4. except ImportError:
  5. from urllib2 import urlopen as _urlopen
  6. try:
  7. from urllib.request import urlretrieve as _urlretrieve
  8. except ImportError:
  9. import urllib2
  10. _urlretrieve = None
  11. from .log import debug
  12. __all__ = ['urlopen', 'urlretrieve']
  13. def urlopen(url, *args, **kwargs):
  14. '''Open a remote file
  15. '''
  16. baseurl, urlname = os.path.split(url)
  17. debug('DOWNLOAD', '%s from %s', baseurl, urlname)
  18. return _urlopen(url, *args, **kwargs)
  19. def urlretrieve(url, filename=None):
  20. '''Download a file to disk
  21. '''
  22. if filename is None:
  23. filename = os.path.basename(url)
  24. debug('DOWNLOAD', '%s from %s', name, os.path.dirname(url))
  25. else:
  26. debug('DOWNLOAD', '%s as %s', url, filename)
  27. if _urlretrieve is None:
  28. data = urllib2.urlopen(url).read()
  29. with open(filename, 'w') as f:
  30. f.write(data)
  31. else:
  32. _urlretrieve(url, filename)