Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解Windows上的Python 3 argparse()_Python_Argparse_Python 3.4 - Fatal编程技术网

了解Windows上的Python 3 argparse()

了解Windows上的Python 3 argparse(),python,argparse,python-3.4,Python,Argparse,Python 3.4,我显然需要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]

我显然需要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接受非可选参数,我必须做些什么? 顺便说一句,我在Windows8.1上运行这个程序,当我在Mac上运行相同的代码时,我会得到提示,没有预期的脚本输出。这意味着它与windows有关

编辑:我可以在交互式会话中尝试此操作,但它也无法正常运行


编辑:是-sys.argv没有附加参数。我认为这与档案协会有关。安装时,Parallels使用Python的Python启动器,这意味着它试图在我的Mac主机上运行脚本。我编辑了与本地python二进制文件的关联,但现在是这样。我尝试对注册表进行黑客攻击以提供帮助,但它已被正确设置为
“c:\windows\py.exe”“%1”%*
好的,我知道发生了什么。 我将文件关联设置为.py(以及.pyc、.pyo、.pyw)和显式python二进制路径。这不起作用,即使你破解了注册表。 回到文件关联(“PC设置”>“搜索和应用程序”>“默认设置(滚动到底)>文件扩展名>滚动到.py)并单击.py扩展名,选择“Python Launcher for Windows(控制台)”,然后我的脚本按预期运行


它归结为选择了正确的启动器。

您的代码示例对我来说很好。请参阅编辑-它也适用于我的Mac,但不适用于我的Windows VM。我编辑了文章标题以反映这一点。我正在运行Windows 7,它仍然可以工作。好的,但问题是为什么它对我不起作用?@volvox:
sys.argv
在交互式会话中运行时可能设置不正确?