如果脚本未使用“python file.py”运行,Python“argparse”不会获取任何参数

问题描述 投票:0回答:2

我正在使用

argparse
,非常简单,如下所示:

#file.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--test", action='store_true')
args = parser.parse_args()

从命令行运行文件时出现问题:如果我使用

python file.py --test
运行它,则参数会正确传递,但如果我像
file.py --test
那样运行它,则不会传递任何参数。

我通常用后一种方式运行一些文件,因为我将它们添加到Windows路径中,以便在任何地方不受限制地运行它们。有什么方法可以传递参数以便它们被认可吗?

python command-line-arguments argparse
2个回答
0
投票

我的机器也遇到同样的问题。

这个问题似乎是由于我在安装 python 之前使用“打开方式...”(...我的文本编辑器)从资源管理器上下文菜单中打开了一个 python 文件。 这个选择通过关键字“py_auto_file”被记住在 Windows 注册表中。

我通过手动删除 Windows 注册表中名为“py_auto_file”的所有键/值解决了问题。 您还可以使用

检查 python 文件是否仍然与 py.exe 正确关联

assoc .py=Python.File ftype Python.File="c:\Windows\py.exe" "%L" %*

在管理控制台中。


-1
投票

#!/usr/bin/env python import argparse parser = argparse.ArgumentParser() parser.add_argument("--test", action='store_true') args = parser.parse_args() print(args.test)

python3 test.py --test

一起奔跑
输出:

True

./test.py --test

一起奔跑
输出:

True

请确保您的文件在 Linux 和 Windows 中都可执行。

© www.soinside.com 2019 - 2024. All rights reserved.