Argparse для преобразования списка аргументов в строку с пробелом - PullRequest
0 голосов
/ 01 ноября 2019
import argparse

parser = argparse.ArgumentParser(description='Short sample app')

parser.add_argument('-a',nargs='+')
args = parser.parse_args(['-a', '1', '4'])
print(args.a)

Печатает список строк ['1', '4'], но мне нужно, чтобы args.a была строкой, разделенной пробелом, т.е. '1 4'. Как это можно сделать?

1 Ответ

2 голосов
/ 01 ноября 2019

После использования parse_args, используйте метод string.join(iterable), где строка ' ', и присвойте результат args.a:

import argparse

parser = argparse.ArgumentParser(description='Short sample app')

parser.add_argument('-a',nargs='+')
args = parser.parse_args(['-a', '1', '4'])

# in practice, check if -a is set
if args.a is not None:
    args.a = " ".join(args.a)

# later ...

if args.a is not None:
    print('"%s"' % args.a)
"1 4"
...