python27从.bat打开程序并关闭.exe

标签 python subprocess

p = subprocess.Popen("path to batch file")
time.sleep(30)
#do something to terminate the .exe process

我正在使用 Popen 运行批处理文件。关联的程序 .exe 在 cmd 终端中打开并运行。通过在终端中手动输入“q”参数,可以(很好地)终止该程序。

我想使用上面的 python27 脚本将“q”字符串传递到终端,以便程序识别其 native 终止信号并关闭。在阅读了“os”和“subprocess”模块文档并尝试了几种方法(.call、.terminate、.kill)后,我还没有成功

编辑:

操作..

p.send_signal('q')

..似乎就是我想做的。但是,“q”会在解释器中引发 ValueError。

最佳答案

我认为你需要做的是在创建子进程时指定标准输入,然后调用其write方法:

import time
import subprocess
p = subprocess.Popen(r"your.bat", stdin=subprocess.PIPE)
time.sleep(30)
p.stdin.write("q")

关于python27从.bat打开程序并关闭.exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16092823/

相关文章:

python - 具有公差的 NumPy setdiff1d - 将一个 numpy 数组与另一个数组进行比较并仅保存唯一值 - 在公差范围之外

Python mysql-connector 将数字 TEXT 值转换为整数

python - 在主脚本中保留 helper python 脚本的环境

python - 从多个 JSON 文件构造 DataFrame

python - 为什么数据清洗会降低准确性?

python子进程popen nohup并返回代码

python - 向 subprocess.Popen() 进程发送命令

python - 通过通信发送输入(命令)到创建的子进程 Python

python - 确定自进程最后一次输出以来的时间 - 使用 subprocess.Popen

python - PYTHON 中的递归可实现所有可能的排列而不重复