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); |