【发布时间】:2012-09-07 09:06:55
【问题描述】:
因为我在 windows 上运行了 python,所以这是我遇到的下一个问题 argparse,我没有看到解决方案。我以前使用过 optparse。这是我的代码:
import argparse
parser = argparse.ArgumentParser(
description = 'Test description') # main description for help
parser.add_argument('-d', '--dir', # -u or --user option
dest = "dir",
help = 'directory to start with')
args = parser.parse_args()
print(args.dir)
但是当我运行这段代码时
code.py -d test
code.py --dir test
我总是得到一个None 作为输出。我觉得这是一件微不足道的事情,而且我忽略了一些明显的事情,但我看不到它。
坦克
亚历克斯
【问题讨论】:
-
在 OSX 10.7.4、Python 2.6.5 上为我工作,但我很惊讶这在 Windows 上会失败。
-
在我的 Windows 7 x64 和 cpython 3.2.3 上运行良好。
code.py --help的输出是什么? -
code.py --help还提供None!我假设 argparse 会自动读取sys.argv还是我需要将其传递给自己? -
@Alex 是的,argparse 会自动查看 sys.argv,除非你另有说明。
-
一个明显的做法是添加一行打印出
sys.argv的实际值,以证明您的代码实际上得到了正确的参数。