отправить длинный параметр в python argparser - PullRequest
1 голос
/ 05 мая 2020

это часть моего скрипта:

parser = ArgumentParser(description='extract state from bamboo build xml')
parser.add_argument('-f', '--file', help='log file', required=True)
parser.add_argument('-e', '--emails', help='emails list', required=True, nargs='+')
parser.add_argument('-p', '--phone-numbers', help='phone numbers list', required=True, nargs='+')
parser.add_argument('--sms-body', '--sms-body', help='sms text', required=True, nargs='+')
parser.add_argument('--email-body', '--email-body', help='email text', required=True, nargs='+')
args = parser.parse_args()

когда я использую эту команду для запуска этого скрипта, у меня нет проблем:

python3.6 example.py --emails abc@gmail.com aaaa@gmail.com --phone-numbers somePhoneNumbers --email-body mail test --sms-body SMS test

все в порядке, и у меня нет проблем но когда я запускаю следующую команду:

python3.6 script.py --phone-numbers somePhoneNumbers --emails aaa@gmail.com --sms-body http://site-aaaa.com:8080/project.all?pageHistory&Username=admin&Password=admin --email-body http://site-a.com:8080/project.all?pageHistory&Username=admin&Password=admin

, результат будет примерно таким:

[1] 15991
[2] 15992
[3] 15993
[4] 15994
-bash: --email-body: command not found
[2]   Done                    Username=admin
[3]-  Exit 127                Password=admin --email-body http://site-a.com:8080/project.all?pageHistory
[4]+  Done                    Username=admin

[root@server scripts]# usage: script.py [-h] [-f FILE] -e EMAILS [EMAILS ...] -p
                             PHONE_NUMBERS [PHONE_NUMBERS ...] --sms-body
                             SMS_BODY [SMS_BODY ...] --email-body EMAIL_BODY
                             [EMAIL_BODY ...]
script.py: error: the following arguments are required: --email-body/--email-body
...