我显然需要 argparse 方面的帮助。来自 3.4 manual ,如果我输入
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 有关。
编辑:我可以在交互式 session 中尝试此操作,但它也无法正确运行。
编辑:是的 - sys.argv 没有附加参数。我认为这与文件关联有关。安装时,Parallels 使用 Python 的 Python Launcher,这意味着它尝试在我的 Mac 主机上运行脚本。我编辑了与本地 python 二进制文件的关联,但现在是这个。我尝试破解注册表来提供帮助,但它已经正确设置为 "c:\windows\py.exe""%1"%*
最佳答案
好的,我知道发生了什么事。 我将 .py(以及 .pyc、.pyo、.pyw)的文件关联设置为显式 python 二进制路径。即使您破解了注册表,这也不起作用。 返回文件关联(“PC 设置”>“搜索和应用程序”>“默认”(滚动到底部)>“按扩展名显示的文件”>滚动到 .py)并单击 .py 扩展名,选择“Python Launcher for Windows(控制台)”,然后选择“我的脚本”表现符合预期。
归根结底就是选择正确的启动器。
关于python - 了解 Windows 上的 Python 3 argparse(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26615114/