Domanda

Sto lavorando su un po 'di codice che dovrebbe eseguire un file exe all'interno di una cartella sul mio sistema e ricevo un errore che dice ...

WindowsError: [Errore 3] Il sistema non riesce a trovare il percorso specificato. Ecco un po 'di codice:

exepath = os.path.join(EXE file localtion)
exepath = '"' + os.path.normpath(exepath) + '"'
cmd = [exepath, '-el', str(el), '-n', str(z)]

print 'The python program is running this command:'
print cmd

process = Popen(cmd, stderr=STDOUT, stdout=PIPE)
outputstring = process.communicate()[0]

Ho importato sottoprocesso e anche dall'importazione di sottoprocesso *

Ad esempio, ecco come appare la mia posizione del file exe nella prima riga del codice che mostro:

 exepath= os.path.join('/Program Files','next folder','next folder','blah.exe')

Mi manca qualcosa?

È stato utile?

Soluzione

Devi uscire correttamente dallo spazio nel percorso eseguibile

Altri suggerimenti

Oltre a sfuggire correttamente agli spazi e ad altri caratteri che potrebbero causare problemi (come /), è anche possibile utilizzare i vecchi percorsi DOS di 8 caratteri.

Ad esempio, i file di programma sarebbero:

Progra ~ 1, assicurandosi di aggiungere ~ 1 per gli ultimi due caratteri.

EDIT: potresti aggiungere una r all'inizio della stringa, rendendola letterale non elaborata. Python leggeva il carattere stringa per carattere. In questo modo:

r " \ Programmi "

Se ricordo bene, non è necessario citare il percorso del file eseguibile, come nella seconda riga.

EDIT: Bene, ho appena preso la finestra di Windows nelle vicinanze e l'ho provato. Popen funziona allo stesso modo, indipendentemente dal fatto che il percorso sia citato o meno. Quindi questo non è un problema.

AFAIK, non è necessario racchiudere il percorso tra virgolette a meno che cmd.exe non sia coinvolto nell'esecuzione del programma.

Inoltre, potresti voler utilizzare la variabile di ambiente ProgramFiles per scoprire l'effettiva posizione di 'Program Files' perché dipende dalle impostazioni regionali e può anche essere modificata usando TweakUI.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top