首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决这种类型的KeyError?

如何解决这种类型的KeyError?
EN

Stack Overflow用户
提问于 2019-06-25 08:26:07
回答 2查看 371关注 0票数 0

我正在尝试编写一个程序来抓取图像,以创建用于神经网络的数据集,但是我遇到了一些问题

代码如下:

代码语言:javascript
复制
from imutils import paths
import argparse
import requests
import cv2
import os

ap = argparse.ArgumentParser()
ap.add_argument("-u", "--C:/Users/artus/datasets/urls.txt", 
                required=False, help="path containing URLs")
ap.add_argument("-o", "--C:/Users/artus/datasets/ShoesImage", 
                required=False, help="folder for downloaded images")
args = vars(ap.parse_args())

# grab the list of URLs from the input file, then initialize the
# total number of images downloaded thus far
rows = open(args["urls"]).read().strip().split("\n")
total = 0

在执行时,它应该从urls.txt文件中指定的urls下载所有图像,但是我得到了这个错误:

代码语言:javascript
复制
Traceback (most recent call last):
   File "C:/Users/artus/untitled5/imagescraping.py", line 16, in <module>
    rows = open(args["urls"]).read().strip().split("\n")
KeyError: 'urls'
EN

回答 2

Stack Overflow用户

发布于 2019-06-25 08:37:01

add_argument的第二个参数是参数的“长名称”。对于第一个参数,您将传递--urls,然后argparse将使用户传递的值作为args["urls"]可用

代码语言:javascript
复制
# ...
ap.add_argument("-u", "--urls", type=str,
                required=False, help="path containing URLs")

然后,在命令行中,传入参数:

代码语言:javascript
复制
python imagescraping.py --urls C:/Users/artus/datasets/urls.txt

此外,我认为您不需要将其包装在vars中。

票数 2
EN

Stack Overflow用户

发布于 2019-06-25 08:48:04

当我将argparse代码复制-n-粘贴到脚本时:

代码语言:javascript
复制
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-u", "--C:/Users/artus/datasets/urls.txt", 
                required=False, help="path containing URLs")
ap.add_argument("-o", "--C:/Users/artus/datasets/ShoesImage", 
                required=False, help="folder for downloaded images")
args = ap.parse_args()
print(args)

不带参数地调用它:

代码语言:javascript
复制
0923:~/mypy$ python3 stack56745387.py 
Namespace(**{'C:/Users/artus/datasets/ShoesImage': None, 'C:/Users/artus/datasets/urls.txt': None})

并寻求帮助:

代码语言:javascript
复制
1743:~/mypy$ python3 stack56745387.py -h
usage: stack56745387.py [-h] [-u C:/USERS/ARTUS/DATASETS/URLS.TXT]
                        [-o C:/USERS/ARTUS/DATASETS/SHOESIMAGE]

optional arguments:
  -h, --help            show this help message and exit
  -u C:/USERS/ARTUS/DATASETS/URLS.TXT, --C:/Users/artus/datasets/urls.txt C:/USERS/ARTUS/DATASETS/URLS.TXT
                        path containing URLs
  -o C:/USERS/ARTUS/DATASETS/SHOESIMAGE, --C:/Users/artus/datasets/ShoesImage C:/USERS/ARTUS/DATASETS/SHOESIMAGE
                        folder for downloaded images

您可能希望"--C:/Users/artus/datasets/urls.txt“类似于默认值,但您将其定义为long标志和参数的dest。(设置中没有将urls指定为所需的dest或密钥。)

你必须使用它作为:

代码语言:javascript
复制
1750:~/mypy$ python3 stack56745387.py --C:/Users/artus/datasets/urls.txt foobar
Namespace(**{'C:/Users/artus/datasets/ShoesImage': None, 'C:/Users/artus/datasets/urls.txt': 'foobar'})

将代码更改为:

代码语言:javascript
复制
import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-u", "--urls", default="C:/Users/artus/datasets/urls.txt", 
                required=False, help="path containing URLs (default: %(default)s)")
ap.add_argument("-o", "--images",default="C:/Users/artus/datasets/ShoesImage", 
                required=False, help="folder for downloaded images (default: %(default)s)")
args = ap.parse_args()
print(args)

1802:~/mypy$ python3 stack56745387.py -h
usage: stack56745387.py [-h] [-u URLS] [-o IMAGES]

optional arguments:
  -h, --help            show this help message and exit
  -u URLS, --urls URLS  path containing URLs (default:
                        C:/Users/artus/datasets/urls.txt)
  -o IMAGES, --images IMAGES
                        folder for downloaded images (default:
                        C:/Users/artus/datasets/ShoesImage)
1803:~/mypy$ python3 stack56745387.py --urls foobar
Namespace(images='C:/Users/artus/datasets/ShoesImage', urls='foobar')

现在,您可以使用args.urlsvars(args)['urls']

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56745387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档