In risposta alla tua seconda domanda: Che cosa significa questo codice fare ...
Questo è il codice di controllo degli errori abbastanza standard per uno script Python che? accetta argomenti da riga di comando.
Quindi la prima istruzione if
si traduce in: se non mi hai passato un argomento, ti dirò come passare un argomento in futuro, ad es. vedrete questa schermata on-:
Usage: myscript.py database-name
I successivi controlli if
istruzione per vedere se il 'nome-database' avete passato allo script esiste realmente sul filesystem. In caso contrario, si otterrà un messaggio come questo:
ERROR: Database database-name was not found!
Dal documentation:
argv [0] è il nome dello script (è sistema operativo dipende se questo è un pieno percorso o no). Se il comando è stato eseguito utilizzando l'opzione della riga di comando -c nell'interprete , argv [0] è impostato sulla stringa "-c". Se nessun nome di script è stato passato all'interprete Python, argv [0] è la stringa vuota.
L'operatore '%' è deprecato in favore del più potente metodo 'str.format', si veda [PEP-3101] (http://docs.python.org/3.1/whatsnew/2.6.html#pep -3101). –
realtà che PEP dice "In Python 3.0, l'operatore% è integrata da un più potente metodo di formattazione stringa" e che sia backported a Python 2.6. da dove vengo io "integrato" significa aggiunto, non sostituiti. Il PEP non dice "soppiantato" e in nessuna parte del PEP si dice che l'operatore% è deprecato (eppure dice che altre cose sono deprecate in fondo). Potresti preferire str.format e va bene, ma finché non c'è un PEP che dice che è deprecato non ha senso pretendere che sia quando non lo è. – Ben