В ответ на ваш второй вопрос: что делает этот код? ...
Это довольно стандартный код проверки ошибок для скрипта Python, который принимает аргументы командной строки.
Итак, первое ifутверждение означает: если вы не передали мне аргумент, я расскажу вам, как вы должны передать мне аргумент в будущем, например, вы увидите это на экране:
Usage: myscript.py database-name
Следующий ifоператор проверяет, существует ли в файловой системе «имя базы данных», переданное вами сценарию. Если нет, вы получите сообщение, подобное этому:
ERROR: Database database-name was not found!
Из документации :
argv [0] - имя сценария (зависит от операционной системы, является ли это полным путем или нет). Если команда была выполнена с использованием параметра командной строки -c для интерпретатора, argv [0] устанавливается в строку '-c'. Если имя интерпретатора не было передано интерпретатору Python, argv [0] является пустой строкой.
%Оператор является устаревшим в пользу более мощногоstr.formatметода см PEP-3101 .