0

我有以下代码从命令行获取输入。我想在 streamlit 中运行此代码,而不是从命令行获取参数的值,而是将它们设置为一些默认值,例如“-i”,我希望它默认打开相机。我怎样才能做到这一点?

def build_argparser():
    parser = ArgumentParser()

    general = parser.add_argument_group('General')
    general.add_argument('-i', '--input', metavar="PATH", default='0',
                         help="(optional) Path to the input video " \
                         "('0' for the camera, default)")
    general.add_argument('-o', '--output', metavar="PATH", default="",
                         help="(optional) Path to save the output video to")
    general.add_argument('--no_show', action='store_true',
                         help="(optional) Do not display output")
    general.add_argument('-tl', '--timelapse', action='store_true',
                         help="(optional) Auto-pause after each frame")
    general.add_argument('-cw', '--crop_width', default=0, type=int,
                         help="(optional) Crop the input stream to this width " \
                         "(default: no crop). Both -cw and -ch parameters " \
                         "should be specified to use crop.")
    general.add_argument('-ch', '--crop_height', default=0, type=int,
                         help="(optional) Crop the input stream to this height " \
                         "(default: no crop). Both -cw and -ch parameters " \
                         "should be specified to use crop.")
    general.add_argument('--match_algo', default='HUNGARIAN', choices=MATCH_ALGO,
                         help="(optional)algorithm for face matching(default: %(default)s)")
4

1 回答 1

1

请参阅:https ://docs.python.org/3/library/argparse.html#the-parse-args-method

通常我们做的是这样的:

parser = argparse.ArgumentParser()
# ... define what to expect
arg = parser.parse_args()

并且arg将是参数对象,它是从 解析的sys.argv,这是您在命令行中输入的。也可以将字符串列表放入函数中,比如

arg = parser.parse_args(["--match_algo", "-ch"])

上面的链接有更多关于您可能使用的参数的不同变体的示例。

于 2020-05-15T04:39:54.940 回答