Добавьте аргументы командной строки с флагами в Python3

Мне нужно ввести параметры из командной строки, то есть имя пользователя, пароль и имя базы данных. Я знаю, как это сделать без использования флагов, используя 'sys.argv' (, как показано ниже ).

##Test.py
hostname = str(sys.argv[1])
username = str(sys.argv[2])
password = str(sys.argv[3])

def ConnecttoDB():
    try:
        con=sql.connect(host=hostname, user= username, passwd= password)
        print ('\nConnected to Database\n')

# If we cannot connect to the database, send an error to the user and exit the program.
    except sql.Error:
        print ("Error %d: %s" % (sql.Error.args[0],sql.Error.args[1]))
        sys.exit(1)

    return con   

Таким образом, его можно запустить как:

$test.py ИМЯ ПОЛЬЗОВАТЕЛЯ БАЗЫ ДАННЫХ ПАРОЛЬ

Но проблема в том, что я должен использовать «флаги». Таким образом, сценарий можно было бы запустить следующим образом:

$test.py -db DATABSE -u USERNAME -p PASSWORD -size 20

Как я могу использовать флаги для получения аргументов из командной строки? Я был бы признателен за вашу помощь в этом.

9
задан user151019 22 July 2012 в 23:47
поделиться