Уведомления

Группа в Telegram: @pythonsu

#1 Сен. 11, 2017 19:55:33

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Второй аргумент argparse

Очередной вопрос по argparse, так как самому очень тяжело разбираться, читая статьи на эту тему.
Мне нужно добавить второй аргумент, чтобы при запуске программа считывала два аргумента: \rabota.py -p 3030 -i 1234
Я разобрался как добавлять лишь один аргумент (-p).
А как за ним добавить второй аргумент?

 parser = argparse.ArgumentParser()
parser.add_argument('-p', help='Enter the port for connection', type=int)
args = parser.parse_args('-p')
port = args.port
Этот код добавления первого аргумента (-p)

Офлайн

#2 Сен. 12, 2017 00:58:19

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Второй аргумент argparse

У тебя код этот неправильный, он не сработает.
Читай документацию по argparse, там много примеров есть правильных.
python.org. argparse



Офлайн

#3 Сен. 12, 2017 05:41:43

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Второй аргумент argparse

Если не сложно, то объясните что значит “dest” и “action”, просто статьи объясняют с профессиональной точки зрения, а я еще очень зеленый в этом плане.

Офлайн

#4 Сен. 12, 2017 06:28:08

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Второй аргумент argparse

MEOW
Если не сложно, то объясните что значит “dest” и “action”
dest - задаёт имя атрибута, под которым будет сохранено значение разобранного аргумента командной строки.
Если dest не задать, то имя атрибута будет определено автоматически из названия параметра: -p будет сохранять под p; - -port будет сохранять под port; а если они оба заданы (-p и - -port), то будет браться тоже длинная опция и сохраняться под port. Если же задать dest, то имя будет браться из dest независимо от опций.

action - определяет способ разбора аргумента командной строки.
Если action не задать, то используется встроенный способ разбора: оно берёт значение аргумента и это значение сохраняет под именем атрибута. Например, ты указал -p 12345 - вот оно возьмёт 12345 и сохранит под p. Если же action задать, то оно может просто сохранить true в значение атрибута, если аргумент командной строки был найден. Например, ты указал -p 12345 - вот оно увидит -p и сохранит true под p, а 12345 посчитает вообще следующим аргументом.

Ну и ещё в action можно передать самодельное действие. Это когда ты пишешь объект, который обрабатывает аргумент командной строки твоим каким-то способом, который только ты знаешь, а потом этот объект ты подаёшь как действие через action и он используется для того, чтобы разобрать аргумент твоим придуманным способом. Тоже часто используется, потому что хоть argparse и хорош, иногда нужно свой разбор сделать, чтобы добавить точности в разборе или сделать сообщения об ошибках как-то поумнее.



Отредактировано py.user.next (Сен. 12, 2017 11:29:54)

Офлайн

#5 Сен. 12, 2017 11:14:02

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Второй аргумент argparse

Большое спасибо

Офлайн

#6 Сен. 12, 2017 11:16:56

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Второй аргумент argparse

py.user.next, можно ли как-то к вам лично обращаться за помощью или вы помогаете только в пределах вопросов на форуме. Если можно то как?

Офлайн

#7 Сен. 12, 2017 11:40:15

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10003
Репутация: +  857  -
Профиль   Отправить e-mail  

Второй аргумент argparse

MEOW
или вы помогаете только в пределах вопросов на форуме
Да, в пределах форума пишу. Google это всё индексирует, потом кто-то находит топики через Google, когда ищет ответы на вопросы. Так приходят новые пользователи на форум. Да и сам я, бывает, тоже ищу свои прошлые сообщения через Google, чтобы дать на них ссылку кому-нибудь.

Лично мне и так пишут постоянно, но обычно это ничем не заканчивается, потому что люди просто не выдерживают режим переписки. Когда-то вместо форумов были почтовые эхи, поэтому там я привык писать помногу и подолгу. А пацаны, которые сейчас молодые, не застали тех времён и их просто перекрывает объём текста, который в почтовой среде считается маленьким. Не выдерживают.



Отредактировано py.user.next (Сен. 12, 2017 11:41:56)

Офлайн

#8 Сен. 12, 2017 11:51:53

MEOW
Зарегистрирован: 2017-06-07
Сообщения: 59
Репутация: +  0  -
Профиль   Отправить e-mail  

Второй аргумент argparse

Хорошо. В пределах форума, так в пределах форума)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version