python - 如何使用python对一个命令行程序一一执行多个命令?
问题描述
如何使用python对一个命令行程序(.exe)一一执行多个命令。我需要发送命令并且需要阅读命令行上每个命令的回复。自从登录和设置以来,所有在一个会话中都必须完成。
我尝试了下面的代码(python 3.6),但它不工作
from subprocess import Popen, PIPE
process = Popen( "cmd.exe", shell=False, universal_newlines=True,
stdin=PIPE, stdout=PIPE, stderr=PIPE )
cmd= "\"C:\temp\demo.exe\"\n"
out, err = process.communicate(cmd)
print(out)
out, err = process.communicate( 'login\n' )
print(out)
解决方案
这样你可以执行多个命令
import subprocess
command_list=["C:\\temp\\demo.exe","echo hello"]
for command in command_list:
proc = subprocess.Popen(command, shell=True,
stdin=subprocess.PIPE, stdout=subprocess.PIPE)
out, err = proc.communicate()
print("{} : {}".format(command,out.decode()))
因为shell=True
不需要cmd.exe
推荐阅读
- c++ - 使用非阻塞操作计算数组的总和
- python - 在 python 中读取时忽略文本文件中的多行注释
- java - 响应实体
返回两个服务方法 - python - 将 Datetime 列转换为 Pandas 中的 DatetimeIndex
- c# - 未指定钱包文件(必须通过 /wallet/ 请求钱包 RPC
uri 路径)。在 C# 中使用 BitcoinLib 备份钱包时出错 - postfix-mta - Postfix spf - 提供欺骗性电子邮件。不失败
- printing - hplip-3.20.9 - 错误 1 失败:找不到 -lImageProcessor
- python - python 3.9版安装numpy失败
- java - 来自命令行的 Maven:依赖项不起作用
- python - Discord.py 自动审核