Форум сайта python.su
0
Нужно чтоб скрипт работал только с 1м аргументом, во все остальных случаях показывал ошибку.
Так сделала через if
if len(sys.argv) != 2: sys.exit("Error: need 1 argument: path to file")
#!/usr/bin/env python import argparse parser = argparse.ArgumentParser() parser.add_argument('path_to_file', nargs='+', help='need path to file') args = parser.parse_args() print vars(args)
Офлайн
857
l1nxparser.add_argument('path_to_file', nargs='+', help='need path to file')
parser.add_argument('path_to_file', help='need path to file')
Офлайн
0
Сделала так
import argparse parser = argparse.ArgumentParser() parser.add_argument('path_to_file', nargs=1, help='need path to file') print parser.parse_args().path_to_file[0]
Офлайн
857
l1nxnargs=1 - это масло масляное.
если не писать nargs, то выведет только первый символ
l1nxprint parser.parse_args().path_to_file[0]
print parser.parse_args().path_to_file
Офлайн
0
py.user.next
А как получать значение именованных аргументов, чтоб использовать их в условиях?
Делала так, но похоже на быдлокод
#!/usr/bin/env python import argparse parser = argparse.ArgumentParser() parser.add_argument('path_to_file', help='need path to file') parser.add_argument('-v', nargs='?', default='false', help='verbose mode') args = vars(parser.parse_args()) print args['path_to_file'], args['v'] if not args['v']: print "xxx"
Офлайн
857
parser.add_argument('-v', action='store_true')
Офлайн