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
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
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
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. –