2015-03-28 00:59:42 +00:00
|
|
|
import urllib, tarfile
|
|
|
|
import inspect, os
|
|
|
|
from utils.generic_utils import Progbar
|
|
|
|
|
|
|
|
def get_file(fname, origin, untar=False):
|
|
|
|
datadir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
|
|
|
|
datadir = os.path.join(datadir, 'data')
|
|
|
|
|
|
|
|
if untar:
|
|
|
|
untar_fpath = os.path.join(datadir, fname)
|
|
|
|
fpath = untar_fpath + '.tar.gz'
|
|
|
|
else:
|
|
|
|
fpath = os.path.join(datadir, fname)
|
|
|
|
|
|
|
|
try:
|
|
|
|
f = open(fpath)
|
|
|
|
except:
|
|
|
|
print 'Downloading data from', origin
|
|
|
|
|
|
|
|
global progbar
|
|
|
|
progbar = None
|
|
|
|
def dl_progress(count, block_size, total_size):
|
|
|
|
global progbar
|
|
|
|
if progbar is None:
|
|
|
|
progbar = Progbar(total_size)
|
|
|
|
else:
|
|
|
|
progbar.update(count*block_size)
|
|
|
|
|
|
|
|
urllib.urlretrieve(origin, fpath, dl_progress)
|
|
|
|
progbar = None
|
|
|
|
|
|
|
|
if untar:
|
2015-03-28 22:50:45 +00:00
|
|
|
if os.path.exists(untar_fpath):
|
2015-03-28 00:59:42 +00:00
|
|
|
pass
|
|
|
|
else:
|
|
|
|
print 'Unraring file...'
|
|
|
|
tfile = tarfile.open(fpath, 'r:gz')
|
|
|
|
tfile.extractall(path=datadir)
|
|
|
|
tfile.close()
|
|
|
|
return untar_fpath
|
|
|
|
|
|
|
|
return fpath
|
|
|
|
|
|
|
|
|
|
|
|
|