如果脚本未使用“python file.py”运行,Python“argparse”不会获取任何参数
我使用 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 路径中,以便在任何地方不受限制地运行它们。有什么方法可以传递这些论点以便它们得到认可吗?
I'm using argparse
very simply like this:
#file.py
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--test", action='store_true')
args = parser.parse_args()
The problem comes when running the file from the command line: if i run it with python file.py --test
the arguments are passed correctly, but if i run it like file.py --test
no arguments are passed.
I usually run some files in the latter way because I add them to the windows path to run them anywhere without limitations. Is there a way I can pass the arguments so that they are recognized?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我的机器上也遇到过同样的问题。
这个问题似乎是由于我在安装 python 之前使用“打开方式...”(...我的文本编辑器)从资源管理器上下文菜单中打开了一个 python 文件。
这个选择通过关键字“py_auto_file”被记住在Windows注册表中。
我通过手动删除 Windows 注册表中名为“py_auto_file”的所有键/值解决了该问题。
检查 python 文件是否仍然与 py.exe 正确关联。
您还可以在管理控制台中
I have had the same problem on my machine.
This issue seems to come from the fact that I opened a python file from the explorer context menu with "Open With..." (...my text editor) before installing python.
This choice was remembered in the windows registry though the keyword "py_auto_file".
I solved the problem by removing by hand all the keys / values named "py_auto_file" in the windows registry.
You can also check that python files are still correctly associated to py.exe with
in an admin console.
我认为问题是你的文件没有 shebang。我添加了 shebang,它对我有用。
test.py:
使用
python3 test.py --test
运行输出:
使用
./test.py --test
运行
输出:
请记住确保您的文件在 Linux 和 Windows 中都可执行。
I think the problem is that there is no shebang of your file. I added shebang and it works for me.
test.py:
Run with
python3 test.py --test
The output:
Run with
./test.py --test
The output:
Remember to make sure your file is executable in both Linux and Windows.