[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