En respuesta a la segunda pregunta: ¿Qué hace este código hacer ...
Este es el código de comprobación de errores bastante estándar para una secuencia de comandos de Python que? acepta argumentos de línea de comandos.
Así que la primera declaración if
se traduce a: si no me has pasado una discusión, voy a decirte cómo debes pasarme una discusión en el futuro, por ej. verá esta pantalla en:
Usage: myscript.py database-name
Los próximos if
comprobaciones de los estados para ver si el 'nombre de base de datos' que ha pasado a la secuencia de comandos que realmente existe en el sistema de archivos. Si no es así, obtendrá un mensaje como este:
ERROR: Database database-name was not found!
Desde el documentation:
argv [0] es el nombre del script (que depende sistema operativo si este es un servicio completo ruta de acceso o no). Si el comando se ejecutó utilizando la opción de línea de comando -c en el intérprete , argv [0] se establece en la cadena '-c'. Si no se ha transferido ningún nombre de script al pasado al intérprete de Python, argv [0] es la cadena vacía.
El operador '%' está en desuso en favor del método 'str.format', más potente, ver [PEP-3101] (http://docs.python.org/3.1/whatsnew/2.6.html#pep -3101). –
Actualmente, PEP dice "En Python 3.0, el operador% se complementa con un método de formato de cadenas más potente" y que se transfiere a Python 2.6. De dónde vengo "complementado" significa agregado, no reemplazado. El PEP no dice "suplantado" y en ninguna parte del PEP dice que el operador% está en desuso (sin embargo, dice que otras cosas están en desuso en la parte inferior). Es posible que prefiera str.format y eso está bien, pero hasta que haya un PEP que diga que está en desuso, no tiene sentido afirmar que es cuando no lo es. – Ben