我正在尝试为我的 Python 脚本的 CLI 实现以下行为:
- 如果
-o
选项不存在,则脚本不会写入文件 - 如果
-o
选项不带参数,则脚本将写入默认文件名 - 如果
-o
选项带有参数,脚本将写入用户提供的文件名
$ python myscript.py # does not write to file
$ python myscript.py -o # writes to default.txt
$ python myscript.py -o myfile.txt # writes to myfile.txt
是否可以使用argparse
来实现这一点?这是我在构建解析器时尝试过的方法:
parser.add_argument('-o', '--output', action='store_true', type=str, default=False, required=False, help="...")
最佳答案
我了解到这是可能的,但您需要使用 const
和 nargs
选项。
parser.add_argument('-o', '--output', const='default.txt', nargs='?', type=str, default=False, required=False, help="...")
关于python - 如何根据参数存在更改 argparse 选项操作与类型行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58017514/