使用 argparse 库从 unix 中的命令行收集输入文件

我正在尝试编写一个脚本,它将一些标志和文件作为参数,然后执行其他脚本,这取决于用户选择的标志。例如,命令行应如下所示:


main_script.py -flag1 -file_for_flag_1 another_file_for_flag_1


main_script.py -flag2 -file_for_flag_2

我尝试使用该argparse库,但我不知道如何将输入文件作为后续步骤的参数并根据需要对其进行操作。我开始:


parser = argparse.ArgumentParser(description="Processing inputs")

parser.add_argument(

    "-flat_map",

    type=str,

    nargs="+",

    help="generates a flat addressmap from the given files",

)

parser.add_argument(

    "-json_convert",

    type=str,

    nargs="+",

    help="generates a flat addressmap from the given files",

)

args = parser.parse_args(args=["-flat_map"])

print(args)


我最后打印出来args看看我能从中得到什么,但我没有任何可以使用的东西。想得到一些指导。谢谢。


素胚勾勒不出你
浏览 112回答 2
2回答

MMMHUHU

如果对您更方便,您可以将 args 转换为 dict(其中键是 arg 选项,值是 arg 值):args_dict = {key: value for key, value in vars(parser.parse_args()).items() if value}

摇曳的蔷薇

使用 argparse 您可以使用子命令来选择子模块:import argparsedef run_command(parser, args):&nbsp; &nbsp; if args.command == 'command1':&nbsp; &nbsp; &nbsp; &nbsp; # add code for command1 here&nbsp; &nbsp; &nbsp; &nbsp; print(args)&nbsp; &nbsp; elif args.command == 'command2':&nbsp; &nbsp; &nbsp; &nbsp; # add code for command2 here&nbsp; &nbsp; &nbsp; &nbsp; print(args)parser = argparse.ArgumentParser(&nbsp; &nbsp; prog='PROG',&nbsp;&nbsp; &nbsp; epilog="See '<command> --help' to read about a specific sub-command.")subparsers = parser.add_subparsers(dest='command', help='Sub-commands')A_parser = subparsers.add_parser('command1', help='Command 1')A_parser.add_argument("--foo")A_parser.add_argument('--bar')A_parser.set_defaults(func=run_command)B_parser = subparsers.add_parser('command2', help='Command 2')B_parser.add_argument('--bar')B_parser.add_argument('--baz')B_parser.set_defaults(func=run_command)args = parser.parse_args()if args.command is not None:&nbsp; &nbsp; args.func(parser, args)else:&nbsp; &nbsp; parser.print_help()这会生成一个帮助页面,如下所示:~ python args.py -husage: PROG [-h] {command1,command2} ...positional arguments:&nbsp; {command1,command2}&nbsp; Sub-commands&nbsp; &nbsp; command1&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Command 1&nbsp; &nbsp; command2&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Command 2optional arguments:&nbsp; -h, --help&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;show this help message and exitSee '<command> --help' to read about a specific sub-command.和help每个子命令的文本:~ python args.py B -harg.py command2 -husage: PROG command2 [-h] [--bar BAR] [--baz BAZ]optional arguments:&nbsp; -h, --help&nbsp; show this help message and exit&nbsp; --bar BAR&nbsp; --baz BAZ
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python