0

我只是有一个简单的问题。在简单的模块 import sys 中,您可以像这样识别参数的位置:

    if len(sys.argv)==2:
       csvFile = sys.argv[1]

这使您可以将用户在命令行中输入的第二个参数存储到变量 csvFile 中。我只是想知道您将如何使用 argparse 模块执行此操作,因为当我尝试使用if len(sys.argv)==2using argparse 时,它​​给了我一个错误:'module' has no attribute 'args'

4

1 回答 1

1

使用argparse您不必担心参数的位置,让模块为您完成工作

import argparse
parser = argparse.ArgumentParser()
parser.add_argument('-x')

现在,模拟将-x 文件名作为命令行的一部分传递,例如

parser.parse_args(['-x','filename'])

这导致Namespace(x='filename')

如果-x参数没有出现,如下:

parser.parse_args([])

这将导致Namespace(x=None)

有关使用这个强大库的更多详细信息,请参阅argparse 模块文档

于 2013-06-14T17:15:46.303 回答