Frage

Ich arbeite gerade an einem Stück Code, das angeblich eine exe-Datei in einem Ordner auf meinem System und erhalte eine Fehlermeldung, ...

läuft

WindowsError: [Error 3] Das System kann den angegebenen Pfad nicht finden. Hier ist ein wenig von dem Code:

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]

Ich habe subprocess importiert und auch von subprocess import *

Zum Beispiel Dies ist, wie meine exe-Datei Lage sieht aus wie in der ersten Zeile des Codes I zeigen:

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

Bin ich etwas fehlt?

War es hilfreich?

Lösung

Sie müssen richtig den Raum in dem ausführbaren Pfad entkommen

Andere Tipps

Neben richtig entweichen Räume und andere Zeichen, die Probleme (wie /) dazu führen könnten, können Sie auch die 8-Zeichen verwenden alte DOS-Pfade.

Zum Beispiel Program Files wäre:

Progra ~ 1, um sicherzustellen, ~ 1 für die letzten zwei Zeichen anzuhängen.

EDIT: Sie könnten eine r an der Vorderseite der Zeichenfolge hinzufügen, es ist eine rohe wörtliche machen. Python würde das String Zeichen für Zeichen lesen. Wie folgt aus:

r "\ Program Files"

Wenn ich mich richtig erinnere, brauchen Sie nicht Ihren executuable Dateipfad zu zitieren, wie Sie in der zweiten Zeile zu tun.

EDIT: Nun, nur packte in der Nähe von Windows-Box und getestet dies. Popen funktioniert auf die gleiche ungeachtet der Pfad angegeben ist oder nicht. Das ist also kein Problem.

AFAIK, gibt es keine Notwendigkeit, den Pfad in Anführungszeichen zu umgeben, es sei denn, cmd.exe in der Ausführung des Programms beteiligt ist.

Darüber hinaus könnten Sie die Umgebungsvariable ProgramFiles verwenden möchten, die tatsächliche Position ‚Program Files‘, um herauszufinden, weil das von der Ländereinstellung abhängig ist und auch TweakUI mit gezwickt werden kann.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top