Найти - Пользователи
Полная версия: Второй аргумент argparse
Начало » Python для новичков » Второй аргумент argparse
1
MEOW
Очередной вопрос по 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)
py.user.next
У тебя код этот неправильный, он не сработает.
Читай документацию по argparse, там много примеров есть правильных.
python.org. argparse
MEOW
Если не сложно, то объясните что значит “dest” и “action”, просто статьи объясняют с профессиональной точки зрения, а я еще очень зеленый в этом плане.
py.user.next
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 и хорош, иногда нужно свой разбор сделать, чтобы добавить точности в разборе или сделать сообщения об ошибках как-то поумнее.
MEOW
Большое спасибо
MEOW
py.user.next, можно ли как-то к вам лично обращаться за помощью или вы помогаете только в пределах вопросов на форуме. Если можно то как?
py.user.next
MEOW
или вы помогаете только в пределах вопросов на форуме
Да, в пределах форума пишу. Google это всё индексирует, потом кто-то находит топики через Google, когда ищет ответы на вопросы. Так приходят новые пользователи на форум. Да и сам я, бывает, тоже ищу свои прошлые сообщения через Google, чтобы дать на них ссылку кому-нибудь.

Лично мне и так пишут постоянно, но обычно это ничем не заканчивается, потому что люди просто не выдерживают режим переписки. Когда-то вместо форумов были почтовые эхи, поэтому там я привык писать помногу и подолгу. А пацаны, которые сейчас молодые, не застали тех времён и их просто перекрывает объём текста, который в почтовой среде считается маленьким. Не выдерживают.
MEOW
Хорошо. В пределах форума, так в пределах форума)
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