使用Python运行接受参数的可执行文件

使用Python运行接受参数的可执行文件,python,exe,Python,Exe,我正在编写一个小型python脚本,在其中打开一个现有的可执行文件(.exe),并发送一个字符串作为参数 我正在使用subprocess.call方法,出现以下错误: 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

我正在编写一个小型python脚本,在其中打开一个现有的可执行文件(.exe),并发送一个字符串作为参数

我正在使用subprocess.call方法,出现以下错误:

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
我的代码

import os
import subprocess

x = subprocess.call("C:\\Users\\Desktop\\Program\\Program.exe", y)
其中y是我要传递的字符串

我正在尝试升级一个旧的VB代码。原始代码调用可执行文件并传递一个参数,如下所示。我试图在Python中复制这一点

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

首先将程序和所需的任何参数放入数组中

import os
import subprocess

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

首先将程序和所需的任何参数放入数组中

import os
import subprocess

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

命令和参数应位于列表中

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

命令和参数应在列表中

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

谢谢您的解释。我把所有的参数都放在一个列表中,它工作了。你知道我如何读取可执行文件的输出吗?我尝试了这个方法,但得到了一个错误:
x=subprocess.Popen([“C:\\Users\\Desktop\\Program\\Program.exe”,y],stdout=PIPE)
其中未定义管道。请阅读文档<代码>管道是子流程模块的一个属性,请使用
stdout=subprocess.PIPE
但如果需要管道,则应使用
popen
类或
子流程。检查输出
谢谢,它可以工作。这就是我所做的:
子流程。检查输出([“C:\\Users\\Desktop\\Program\\Program.exe”,y])
。然后使用.decode()将输出转换为字符串谢谢您的解释。我把所有的参数都放在一个列表中,它工作了。你知道我如何读取可执行文件的输出吗?我尝试了这个方法,但得到了一个错误:
x=subprocess.Popen([“C:\\Users\\Desktop\\Program\\Program.exe”,y],stdout=PIPE)
其中未定义管道。请阅读文档<代码>管道是子流程模块的一个属性,请使用
stdout=subprocess.PIPE
但如果需要管道,则应使用
popen
类或
子流程。检查输出
谢谢,它可以工作。这就是我所做的:
子流程。检查输出([“C:\\Users\\Desktop\\Program\\Program.exe”,y])
。然后使用.decode()将输出转换为字符串