Em resposta à sua segunda pergunta: O que esse código faz? ...
Esse é um código de verificação de erro bastante padrão para um script Python que aceita argumentos da linha de comando.
Portanto, a primeira if
declaração se traduz em: se você não me passou uma discussão, eu vou lhe dizer como você deve me passar uma discussão no futuro, por exemplo, você verá isso na tela:
Usage: myscript.py database-name
A próxima if
instrução verifica se o 'nome do banco de dados' que você transmitiu para o script realmente existe no sistema de arquivos. Caso contrário, você receberá uma mensagem como esta:
ERROR: Database database-name was not found!
A partir da documentação :
argv [0] é o nome do script (depende do sistema operacional se este é um nome de caminho completo ou não). Se o comando foi executado usando a opção de linha de comando -c para o intérprete, argv [0] é definido como a string '-c'. Se nenhum nome de script foi passado para o interpretador Python, argv [0] é a string vazia.
%
operador foi descontinuado em favor dostr.format
método mais poderoso , consulte PEP-3101 .