传递带有argparse的目录(不需要类型检查)

2024-04-29 13:04:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我写了一个文件爬虫程序,我正在尝试扩展它。我想使用argparse来处理脚本的设置,包括在命令行中传入起始目录。

示例:/var/some/directory/

我还有其他几个参数要处理,但无法正确传递此目录。我不在乎它前面是否有一个标志(例如-d /path/to/start/),但我需要确保至少使用了这个I s参数,因为它是脚本运行的唯一必需选项。

代码示例:

parser = argparse.ArgumentParser(description='py pub crawler...')
parser.add_argument('-v', '--verbose', help='verbose output from crawler', action="store_true")
parser.add_argument('-d', '--dump', help='dumps and replaces existing dictionaries', action="store_true")
parser.add_argument('-f', '--fake', help='crawl only, nothing stored to DB', action="store_true")

args = parser.parse_args()

if args.verbose:
    verbose = True
if args.dump:
    dump = True
if args.fake:
    fake = True

Tags: store脚本addtrueparserverboseifargparse
1条回答
网友
1楼 · 发布于 2024-04-29 13:04:06

只需添加:

parser.add_argument('directory',help='directory to use',action='store')

在你的args = parser.parse_args()行之前。命令行中的一个简单测试表明它做了正确的事情(在脚本末尾打印args):

$ python test.py /foo/bar/baz
Namespace(directory='/foo/bar/baz', dump=False, fake=False, verbose=False)
$ python test.py
usage: test.py [-h] [-v] [-d] [-f] directory
test.py: error: too few arguments

相关问题 更多 >