【发布时间】:2021-03-19 21:22:47
【问题描述】:
所以我试图通过教程here 教自己如何使用python 库argparse。示例由以下代码段给出,保存为tut.py。
import argparse
parser = argparse.ArgumentParser(description='Process some integers.')
parser.add_argument('integers', metavar='N', type=int, nargs='+',
help='an integer for the accumulator')
parser.add_argument('--sum', dest='accumulate', action='store_const',
const=sum, default=max,
help='sum the integers (default: find the max)')
args = parser.parse_args()
print(args.accumulate(args.integers))
在教程中,他们在命令行中的每个命令之前都放置了一个$,我认为这是因为他们使用的是 Linux。首先,如果我在我的 Windows 命令行中添加一个 $ 在任何命令之前我会收到错误
The "$" command was either misspelled or could not be found.
如果我再跑
python tut.py 1 2 3 4
我没有收到错误消息,但命令行中也没有显示任何输出。不过,可以预期的是这些整数的总和。
如何使输出显示在命令提示符中?
【问题讨论】:
-
$只是在linux终端中表示一个新行,你可以忽略它 -
如果你设置
print(args.accumulate(args.integers), flush=True)会发生什么? -
如果要打印整数的总和,请尝试使用 sum() 函数而不是 accum()
-
@HirushaFernando OP 希望利用
--sum标志设置的默认值,即max,如果通过了sum标志,它将切换到sum,如下所示const和defaultkwargs,所以args.accumulate是正确的 -
@C.Nivs 设置 flush = True 也不会产生任何输出
标签: python command-line argparse