Skip to content

Commit

Permalink
Updated download.py
Browse files Browse the repository at this point in the history
  • Loading branch information
mricha56 committed Jun 27, 2017
1 parent d60fe1a commit d661d3e
Showing 1 changed file with 48 additions and 25 deletions.
73 changes: 48 additions & 25 deletions download.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,17 @@
import os
import sys
import tarfile
import re

from urllib.request import urlretrieve

VOC_URL="http://host.robots.ox.ac.uk/pascal/VOC/voc2010/VOCtrainval_03-May-2010.tar"
PASD_URL="https://codalabuser.blob.core.windows.net/public/%s"
JSON_REGEX='trainval_.*'


progress = 0
json_regex = re.compile(JSON_REGEX)

def printProgress(count, blockSize, totalSize):
global progress
Expand All @@ -19,38 +24,56 @@ def printProgress(count, blockSize, totalSize):
print("Download %d%% complete." % progress)


if len(sys.argv) < 2 or sys.argv[1] == '-h' or sys.argv[1] == '--help':
print("usage: python download.py <folder>\n" \
+ "Download VOCdevkit 2010 to <folder>.")
if len(sys.argv) < 3 or sys.argv[1] == '-h' or sys.argv[1] == '--help':
print("usage: python download.py <dataset> <folder>\n" \
+ "Download PASCAL in Detail data to <folder>.\n" \
+ "<dataset> options: 'pascal' to download VOCdevkit,\n"
+ "trainval_preview1 to download trainval_preview1.json.")
exit(1)

if not os.path.isdir(sys.argv[1]):
print("%s is not a directory." % sys.argv[1])
if not os.path.isdir(sys.argv[2]):
print("%s is not a directory." % sys.argv[2])
exit(1)


rootdir = sys.argv[1]
filepath = os.path.join(rootdir, "VOCtrainval_03-May-2010.tar")
rootdir = sys.argv[2]

print("Downloading VOCdevkit 2010 to %s." % filepath)
if sys.argv[1].lower() == 'pascal':
filepath = os.path.join(rootdir, "VOCtrainval_03-May-2010.tar")

print("Downloading VOCdevkit 2010 to %s." % filepath)

if os.path.exists(filepath):
print("Tar file appears to already be downloaded. Using it.")
else:
urlretrieve(VOC_URL, filepath + '.download', reporthook=printProgress)
os.rename(filepath + '.download', filepath)
print("Download complete!")

if os.path.exists(filepath):
print("Tar file appears to already be downloaded. Using it.")
else:
urlretrieve(VOC_URL, filepath + '.download', reporthook=printProgress)
os.rename(filepath + '.download', filepath)
print("Download complete!")

print("\n\n")
print("Unpacking. This may take a few minutes...")
if os.path.exists(os.path.join(rootdir, 'VOCdevkit')):
print("VOCdevkit directory already present. Aborting unpacking.")
else:
tar = tarfile.open(filepath)
tar.extractall(path=rootdir)
tar.close()

print("Unpacking. This may take a few minutes...")
if os.path.exists(os.path.join(rootdir, 'VOCdevkit')):
print("VOCdevkit directory already present. Aborting unpacking.")
else:
tar = tarfile.open(filepath)
tar.extractall(path=rootdir)
tar.close()
print("Cleaning up.")
if os.path.exists(os.path.join(rootdir, 'VOCdevkit')):
os.remove(filepath)
elif json_regex.match(sys.argv[1].lower()):
filename = sys.argv[1].lower() + '.json'
filepath = os.path.join(rootdir, filename)
url = PASD_URL % filename

if os.path.exists(filepath):
print("%s already exists. Aborting." % filepath)
exit(1)

print("Downloading %s to %s from:\n%s" % (filename, filepath, url))

urlretrieve(url, filepath + '.download', reporthook=printProgress)
os.rename(filepath + '.download', filepath)
print("Download complete!")

print("Cleaning up.")
if os.path.exists(os.path.join(rootdir, 'VOCdevkit')):
os.remove(filepath)

0 comments on commit d661d3e

Please sign in to comment.