Pour répondre à votre deuxième question : Que fait ce code ?...
Il s'agit d'un code de vérification d'erreurs assez standard pour un script Python qui accepte des arguments en ligne de commande.
Donc le premier if
se traduit par : si vous ne m'avez pas passé d'argument, je vais vous dire comment vous devriez me passer un argument à l'avenir, par exemple, vous verrez ceci à l'écran :
Usage: myscript.py database-name
Le prochain if
vérifie si le 'nom de la base de données' que vous avez passé au script existe réellement sur le système de fichiers. Si ce n'est pas le cas, vous obtiendrez un message comme celui-ci :
ERROR : La base de données nom-base de données n'a pas été trouvée !
De la documentation :
argv[0] est le nom du script (il est système d'exploitation si dépend du système d'exploitation, qu'il s'agisse d'un chemin complet ou non). Si la commande a été exécutée en utilisant l'option de ligne de commande -c à l'option de ligne de commande l'interpréteur, argv[0] prend la valeur de la chaîne chaîne '-c'. Si aucun nom de script n'a été transmis à passé à l'interpréteur Python, argv[0] est la chaîne vide.
5 votes
El
%
est déprécié au profit de l'opérateur plus puissantstr.format
méthode, voir PEP-3101 .45 votes
En fait, cette PEP dit "Dans Python 3.0, l'opérateur % est complété par une méthode plus puissante de formatage des chaînes de caractères" et qu'elle est rétroportée vers Python 2.6. D'où je viens, "supplemented" signifie ajouté, pas remplacé. Le PEP ne dit pas "supplanté" et dans aucune partie du PEP il n'est dit que l'opérateur % est déprécié (pourtant il est dit que d'autres choses sont dépréciées en bas de page). Vous pouvez préférer str.format et c'est très bien, mais tant qu'il n'y a pas de PEP disant qu'il est déprécié, il n'y a aucun sens à prétendre qu'il l'est alors qu'il ne l'est pas.