我显然需要argparse的帮助。从3.4 manual,如果我在命令行上键入在Windows上了解Python 3 argparse()
import argparse
parser = argparse.ArgumentParser(prog='PROG')
parser.add_argument('-f', '--foo')
parser.add_argument('bar')
parser.parse_args()
,有救了这个代码到test.py,然后运行
test.py bar
我为我的期望迅速回来,但我得到
usage: PROG [-h] [-f FOO] bar
PROG: error: the following arguments are required: bar
我该怎么做才能让test.py接受一个非可选的参数? 顺便说一句,我在Windows 8.1上运行这个,当我在我的Mac上运行相同的代码时,我得到我的提示没有预期的脚本输出。这意味着它与Windows有关。
编辑:我可以在交互式会话中尝试这一点,它也无法正常运行。
编辑:是的 - sys.argv没有附加到它的参数。我认为这与文件关联有关。在安装时,Parallels使用Python的Python启动器,这意味着它试图在我的Mac主机上运行脚本。我编辑关联到本地python二进制文件,但现在这个。我已经尝试黑客注册表来帮助,但它已被正确设置为"c:\windows\py.exe" "%1" %*
你的代码示例适合我。 – 2014-10-28 17:53:10
请参阅编辑 - 它也适用于我的Mac,但不适用于我的Windows VM。我已编辑帖子标题以反映这一点。 – volvox 2014-10-28 17:53:43
我正在运行Windows 7,它仍然有效。 – 2014-10-28 17:54:38