неділя, 16 травня 2021 р.

Парсинг аргументів командного рядка

Аrgparse - модуль Python для обробки опцій і аргументів командного рядка, з якого викликається скрипт. Це дозволяє передавати програмі різні вхідні данні без зміни самого коду.

Спочатку зробимо новий скрипт, назвавши його simple_example.py:

import argparse
ap = argparse.ArgumentParser()
ap.add_argument("-n", "--name", required=True,
	  help="name of the user")
args = vars(ap.parse_args())
print("Hi there {}, it's nice to meet you!".format(args["name"]))
В рядку 2 створюємо об'єкт класу ArgumentParser з іменем ap і додаємо єдиний аргумент --name, який буде передаватися програмі. Це обов'язковим аргумент -- = True.

Рядок довідки надасть додаткову інформацію в терміналі, якщо вона вам потрібна. Щоб переглянути довідку про використання команди, потрібно ввести в командному рядку

python argpar.py --help 
Отримаємо довідкову інформацію
Функція vars перетворює розпатрані аргументи командного рядка в словник, в якому ключем є ім'ям аргументу командного рядка, а значенням є значення словника, наданого для аргументу командного рядка. Якщо вставити у код оператор print(args) і виконати скрипт
python simple_example.py --name Me  
то ми отримаємо цей словник з одним записом
{ 'name': 'Me' }
Для того щоб в програмі отримати доступ до значення аргументу командного рядка потрібно просто звернутися до відповідного поля словника args["name"]

Часто програмі зручно передати шлях де знаходяится необхідні данні, а також шлях куди потрібно виводити результати. Це робиться додаванням нових аргументів.

# конструюємо парсер і парсимо аргументи 
ap.add_argument("-i", "--input", required=True,
	help="path to input image")
ap.add_argument("-o", "--output", required=True,
	help="path to output image")
args = vars(ap.parse_args())
image = cv2.imread(args["input"])
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
cv2.imwrite(args["output"],gray)
Тут ми задаємо обов'язковий параметр -- ім'я вхідного файлу, потім задаємо обов'язковий параметр -- ім'я вихідного файлу. Далі ми зчитуємо файл, обробляємо його і зберігаємо під вказаною назвою.

Для виконання програми потрібно у командному рядку вказати вхідний і вихідний файл, наприклад так

python simple_example.py -- name Me  --input input_01.png --output output_01.png 
В редакторі PyCharm є можливість передавати параметри скрипту, вказавши їх на вкладці Run ->Edit Configuration і заповнити поле Parameters вписавши туди параметри, наприклад

-- name Me  --input input_01.png --output output_01.png 

Немає коментарів:

Дописати коментар