Найти - Пользователи
Полная версия: Как проверить в argparse количество аргументов?
Начало » Python для новичков » Как проверить в argparse количество аргументов?
1
l1nx
Нужно чтоб скрипт работал только с 1м аргументом, во все остальных случаях показывал ошибку.
Так сделала через if
if len(sys.argv) != 2: sys.exit("Error: need 1 argument: path to file")
Если использовать argparse, то будет что-то такое
#!/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)
но nargs='+' и ‘?’ не подходят, и больше не нашла как указывать количество аргументов в доке
py.user.next
l1nx
parser.add_argument('path_to_file', nargs='+', help='need path to file')
parser.add_argument('path_to_file', help='need path to file')
l1nx
Сделала так
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]
если не писать nargs, то выведет только первый символ
py.user.next
l1nx
если не писать nargs, то выведет только первый символ
nargs=1 - это масло масляное.

l1nx
print parser.parse_args().path_to_file[0]
print parser.parse_args().path_to_file
l1nx
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"
py.user.next
parser.add_argument('-v', action='store_true')
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB