[Python] windows e os.system
Manlio Perillo
manlio_perillo a libero.it
Gio 21 Set 2006 12:02:05 CEST
Sevastian Foglia ha scritto:
> Ho un problema nell'esecuzione di un comando sotto windows mediante
> system.
> Guardando i precedenti messaggi sul newsgroup ho trovato qualcosa, ma
> nulla funziona.
> Questo è l'estratto di codice:
> [code]
> unzip = 'C:\Documents and Settings\Bill Gates\Desktop\Unzip\unzip.exe'
> unzip = os.path.normpath(os.path.abspath(unzip))
> arzip = 'C:\Documents and Settings\Bill Gates\Desktop\archivio.zip'
> arzip = os.path.normpath(os.path.abspath(arzip))
> command = "\"%s\" \"%s\"" % (unzip, arzip)
> os.system(command)
> [/code]
>
> Questo l'errore riscontrato
> "C:\Documents" non è riconosciuto come comando interno o esterno,
> un programma eseguibile o un file batch.
>
Innanzitutto sbagli a scrivere le stringhe.
Devi fare
unzip = r'C:\Documents..."
oppure
unzip = 'C:\\Docume
'\' è un carattere speciale.
Infine devi fare l'escaping/quoting della stringa, in quanto gli spazi
danno fastidio.
Puoi usare subprocess.list2cmdline:
subprocesslist2cmd((unzip, arzip))
>>> print subprocess.list2cmdline((unzip, arzip))
"C:\Documents and Settings\Bill Gates\Desktop\Unzip\unzip.exe"
"C:\Documents and Settings\Bill Gates\Desktop\archivio.zip"
Saluti Manlio Perillo
Maggiori informazioni sulla lista
Python