tgoop.com/prog_way_blog/50
Last Update:
Как передать параметры в программу Python из консоли.
Я думаю многие видели конструкции запуска файлов типаpython file.py -n ProgWay —url www.tgoop.com/prog_way_blog
Такие конструкции бывают полезны, когда скрипт запускается с определенными параметрами автоматически. Как самый близкий мне пример, когда нужно реализовать автоматизированный обработчик логов. Мы получаем на сервер новый чанк информации, засовываем её в в скрипт и на выходе получаем проанализированный файлик, например.
В общем, штука полезная и знать её точно стоило бы, но как реализовать - непонятно.
Я покажу 2 способа:
Первый через встроенную библиотеку sys. Мы получаем список всех аргументов, которые у нас есть при запуске, и уже после можем по нему итерироваться, например:
import sysТогда при запуске вот такой конструкции:
for param in sys.argv:
print(param)
python file.py -n ProgWay —url www.tgoop.com/prog_way_blog
Мы получим вывод:file.pyС этим уже можно работать, но при большом количестве аргументов ваш код постепенно будет превращаться в нечитабельное говно с огромным количеством условных конструкций, что не есть хорошо.
-n
ProgWay
—url
www.tgoop.com/prog_way_blog
Второй вариант уже куда более изящный - там я использую библиотеку argparse:
import sysТогда при вводе той же строки:
import argparse
def getArgs():
parser = argparse.ArgumentParser()
parser.add_argument('-n', '--name', default="ProgWay")
parser.add_argument('-u', '--url', default="www.tgoop.com/prog_way_blog")
return parser.parse_args()
if __name__ == "__main__":
args = getArgs()
print(args.name)
python file.py -n ProgWay —url www.tgoop.com/prog_way_blog
Мы получим объект, из которого по ключам можем легко достать любой аргумент.args.name // ProgWayТаким образом организовать получение аргументов из командной строки очень просто и эффективно. Спасибо за прочтение ❤️
args.url // www.tgoop.com/prog_way_blog
#python
BY progway — программирование, IT

Share with your friend now:
tgoop.com/prog_way_blog/50