从网站上下载数据集并解压——以coco数据集为例

最近在阅读源码时发现了一段值得学习的源码,实现从网址下载coco数据集到本地,并解压,在这里做下记录,以备借鉴使用。

###以下载annotations为例
# Setup annotations data paths
annDir = "{}/annotations".format(dataDir)
if dataType == "minival": #给出不同子文件夹的文件夹名、文件名和网址
   annZipFile = "{}/instances_minival2014.json.zip".format(dataDir)
   annFile = "{}/instances_minival2014.json".format(annDir)
   annURL = "https://dl.dropboxusercontent.com/s/o43o90bna78omob/instances_minival2014.json.zip?dl=0"
   unZipDir = annDir
elif dataType == "valminusminival":
   annZipFile = "{}/instances_valminusminival2014.json.zip".format(dataDir)
   annFile = "{}/instances_valminusminival2014.json".format(annDir)
   annURL = "https://dl.dropboxusercontent.com/s/s3tw5zcg7395368/instances_valminusminival2014.json.zip?dl=0"
   unZipDir = annDir
else:
   annZipFile = "{}/annotations_trainval{}.zip".format(dataDir, dataYear)
   annFile = "{}/instances_{}{}.json".format(annDir, dataType, dataYear)
   annURL = "http://images.cocodataset.org/annotations/annotations_trainval{}.zip".format(dataYear)
   unZipDir = dataDir
# print("Annotations paths:"); print(annDir); print(annFile); print(annZipFile); print(annURL)

# Download annotations if not available locally
if not os.path.exists(annDir): #生成文件夹
   os.makedirs(annDir)
if not os.path.exists(annFile):
   if not os.path.exists(annZipFile):
       print("Downloading zipped annotations to " + annZipFile + " ...")
       with urllib.request.urlopen(annURL) as resp, open(annZipFile, 'wb') as out: 
           shutil.copyfileobj(resp, out) #使用urllib包下载压缩包
       print("... done downloading.")
   print("Unzipping " + annZipFile)
   with zipfile.ZipFile(annZipFile, "r") as zip_ref: #解压操作
       zip_ref.extractall(unZipDir)
   print("... done unzipping")
print("Will use annotations in " + annFile)

参考地址

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值