若脚本不使用"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路径中,以便在任何地方无限制地运行它们。有没有一种方法可以让我通过这些论点,让它们得到认可?

我认为问题是您的文件没有shebang。我加了shebang,它对我有效。test.py:

#!/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中都是可执行的。

最新更新