我正在使用
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 之前使用“打开方式...”(...我的文本编辑器)从资源管理器上下文菜单中打开了一个 python 文件。 这个选择通过关键字“py_auto_file”被记住在 Windows 注册表中。
我通过手动删除 Windows 注册表中名为“py_auto_file”的所有键/值解决了问题。 您还可以使用
检查 python 文件是否仍然与 py.exe 正确关联assoc .py=Python.File
ftype Python.File="c:\Windows\py.exe" "%L" %*
在管理控制台中。
#!/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 中都可执行。