2016-08-01 13 views
1

Ich schreibe ein kleines Python-Skript, wo ich eine vorhandene ausführbare Datei (. Exe) öffnen und ich eine Zeichenfolge als Argument senden.Laufende ausführbare Datei, die Argumente mit Python

ich die subprocess.call Methode verwenden und ich erhalte die folgenden Fehler:

File "C:\Python34\lib\subprocess.py", line 537, in call 
    with Popen(*popenargs, **kwargs) as p: 
File "C:\Python34\lib\subprocess.py", line 767, in __init__ 
    raise TypeError("bufsize must be an integer") 
TypeError: bufsize must be an integer 

Mein Code

import os 
import subprocess 

x = subprocess.call("C:\\Users\\Desktop\\Program\\Program.exe", y) 

wo y eine Saite, die ich vorbei bin.

Ich versuche, einen alten VB-Code zu aktualisieren. Der ursprüngliche Code ruft die ausführbare Datei auf und übergibt ein Argument wie unten gezeigt. Ich versuche das in Python zu replizieren.

Private comm As ExecCmd 
Dim cmd As String 
Dim app As String 
Dim e As New ExecCmd 

exec_1= "...\Desktop\Program.exe" 
x = "Text" & Variable & " Hello" & Variable2 

comm.StartApp exec_1, x 'starts the .exe file with an argument 

Antwort

3

Der Befehl und Argumente sollten

x = subprocess.call(["C:\\Users\\Desktop\\Program\\Program.exe", y]) 

Documentation

+0

Sie in einer Liste sein für die Erklärung danken. Ich habe alle Argumente in eine Liste eingefügt und es hat funktioniert. – JC203

+0

Wissen Sie, wie ich die Ausgabe der ausführbaren Datei lesen kann? Ich habe das versucht und erhalte einen Fehler: 'x = subprocess.Popen ([" C: \\ Benutzer \\ Desktop \\ Programm \\ Programm.exe ", y], stdout = PIPE)' wo PIPE nicht definiert ist. – JC203

+0

Lesen Sie die Dokumentation. 'PIPE' ist ein Attribut des Subprozessmoduls, benutze' stdout = subprocess.PIPE'. Aber wenn du Pipes brauchst, solltest du die 'popen' Klasse oder' subprocess.check_output' verwenden. –

4

Setzen Sie das Programm und alle gewünschten Argumente zuerst in ein Array.

import os 
import subprocess 

x = subprocess.call(["C:\\Users\\Desktop\\Program\\Program.exe", y]) 
Verwandte Themen