亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用 argparse 庫從 unix 中的命令行收集輸入文件

使用 argparse 庫從 unix 中的命令行收集輸入文件

素胚勾勒不出你 2022-10-06 20:00:16
我正在嘗試編寫一個腳本,它將一些標志和文件作為參數,然后執行其他腳本,這取決于用戶選擇的標志。例如,命令行應如下所示: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看看我能從中得到什么,但我沒有任何可以使用的東西。想得到一些指導。謝謝。
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

如果對您更方便,您可以將 args 轉換為 dict(其中鍵是 arg 選項,值是 arg 值):

args_dict = {key: value for key, value in vars(parser.parse_args()).items() if value}


查看完整回答
反對 回復 2022-10-06
?
搖曳的薔薇

TA貢獻1793條經驗 獲得超6個贊

使用 argparse 您可以使用子命令來選擇子模塊:


import argparse


def run_command(parser, args):

    if args.command == 'command1':

        # add code for command1 here

        print(args)

    elif args.command == 'command2':

        # add code for command2 here

        print(args)


parser = argparse.ArgumentParser(

    prog='PROG', 

    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:

    args.func(parser, args)

else:

    parser.print_help()

這會生成一個幫助頁面,如下所示:


~ python args.py -h

usage: PROG [-h] {command1,command2} ...


positional arguments:

  {command1,command2}  Sub-commands

    command1           Command 1

    command2           Command 2


optional arguments:

  -h, --help           show this help message and exit


See '<command> --help' to read about a specific sub-command.

和help每個子命令的文本:


~ python args.py B -h

arg.py command2 -h

usage: PROG command2 [-h] [--bar BAR] [--baz BAZ]


optional arguments:

  -h, --help  show this help message and exit

  --bar BAR

  --baz BAZ


查看完整回答
反對 回復 2022-10-06
  • 2 回答
  • 0 關注
  • 135 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號