Python и аргументы командной строки
В питоне есть два способа получения аргументов запуска скрипта из командной строки:
- Использовать модуль argparse. Попробовал. Не понравилось, потому что — это еще одна дополнительная зависимость в скрипте, что мне сильно не нравится, когда шапка простого скрипта забита десятком строк import с модуля которых нет в «базе», что нервирует когда запускаешь первый раз скрипт на системе с «голым» питоном. Для желающих, вот например хорошая статья
- Использовать стандартный модуль sys. Менее «навороченный», но и хотяб документацию не нужно «переваривать» с пол часа. И так всё понятно и стандартно.
Итак, пример скрипта:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | # -*- coding: utf-8 -*- import socket import sys import mysql.connector from mysql.connector import Error #настройки скрипта vr="1.0" hostdb="localhost" database="grib" userdb="root" passdb=""; #выводим имя ПК и версию скрипта                 hostname = socket.gethostname() print ("Server: ",hostname); print ("Version: ",vr); #разбираем коммандную строку if len(sys.argv)>=3:     liscnt=sys.argv[2] else:     print ("Параметры запуска:")     print ("-n XX  - количество выводимых строк в запросе")     exit(0) #пробуем соедениться с mysql try:     conn = mysql.connector.connect(host=hostdb,database=database,user=userdb,password=passdb)     if conn.is_connected(): print('Вроде соеденился!') except Error as e:     print("Ошибка: ",e);     exit(0);     #создаем курсор запроса, с выводом имен столбцов cursor = conn.cursor(dictionary=True) try:     cursor.execute("SELECT * FROM wp_posts limit "+liscnt);     row = cursor.fetchone()     while row is not None:         print(row['post_title'])         row = cursor.fetchone()     conn.close() except Error as e:     print("Ошибка выполнения SQL: ",e);     exit(0);     |