admin 管理员组文章数量: 1086019
转载自品略图书馆 http://www.pinlue/article/2020/03/1106/1510011426025.html
说明:
1. 用communicate方法进行交互,直接读取p.stdout有可能数据还没刷新,会读取不到
2. windows shell参数表明是否使用windows bat作为执行的环境,因此只有在执行windows系统命令如dir,copy时才必须将此参数设置为True,其他地方True与False执行结果没区别
3. universal_newlines参数表明输入、输出是否采用文本解析
4. comnunicate的input参数是用于手式输入参数的,如果是命令行参数参数直接在程序后面加就可以
5. 没有了
import subprocess
proc = subprocess.Popen("E:\\__Projects\\c++\\test\\Debug\\test.exe", stdin = subprocess.PIPE,
stdout = subprocess.PIPE, stderr = subprocess.PIPE,universal_newlines=True, shell = False)
straa = "3\n"
strbb = "4\n"
proc.stdin.write(straa)
proc.stdin.write(strbb)
# p.stdin.close()
try:
outs, errs = procmunicate(timeout=15)
# print(proc.stdout.read())
print(outs)
except TimeoutExpired as e:
proc.kill()
outs, errs = procmunicate()
版权声明:本文标题:python popen执行系统命令并获取返回值。 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/b/1741228806a2279001.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论