史上最难python 难题;python 与 exe 交互 问题。 求高手破解

思想猎人 2014-01-01 11:33:42
有一个python 难题 问题是这样 : 我用python 调用一个 exe的程序 , 但是这个程序 需要交互,比如说 它会在 某个情况下 让你输入某个字符,内容不可预知。 请问如何用python实现。 我尝试用python 里面的 subprocess.call("app.exe") 可以 实现交互。 但是我还有 一个需求 就是同时把 app.exe 的输出内容记录下来 请问有高手能告诉我怎么办吗?
...全文
405 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2014-01-02
  • 打赏
  • 举报
回复
要交互,Popen参数要带stdin=subprocess.PIPE转向,然后调用communicate(input="1\n\2\n3\n")对应3个raw_input...
思想猎人 2014-01-02
  • 打赏
  • 举报
回复
引用 1 楼 iasky 的回复:
cmd = 'find ../Pictures/ -regex ".*\(JPG\|NEF\|jpg\)" '
args = shlex.split(cmd)
output,error = subprocess.Popen(args,stdout = subprocess.PIPE, stderr=subprocess.PIPE).communicate()
#output = subprocess.Popen(args,stdout = subprocess.PIPE).stdout
print output
主要就是指定subprocess.PIPE为stderr等...
用你这个方法我试验了一下 程序会hang住。 首先 我有一个 程序 叫 calc.py
import os
x = raw_input("input x: ")
print '\n'

y = raw_input("input y: ")
print '\n'
z = raw_input("input z: ")
print int(x) + int(y)
另外一个交互程序 名称叫 interaction.py 内容如下:

import subprocess   

import shlex


cmd = 'python calc.py'
args = shlex.split(cmd)
output,error = subprocess.Popen(args,stdout = subprocess.PIPE, stderr=subprocess.PIPE).communicate()
#output = subprocess.Popen(args,stdout = subprocess.PIPE).stdout
print output

运行 interaction.py 会hang住 无任何输出 请解答?谢谢
iasky 2014-01-02
  • 打赏
  • 举报
回复
cmd = 'find ../Pictures/ -regex ".*\(JPG\|NEF\|jpg\)" '
args = shlex.split(cmd)
output,error = subprocess.Popen(args,stdout = subprocess.PIPE, stderr=subprocess.PIPE).communicate()
#output = subprocess.Popen(args,stdout = subprocess.PIPE).stdout
print output
主要就是指定subprocess.PIPE为stderr等...
silenceyea 2014-01-02
  • 打赏
  • 举报
回复
qiangfen

37,743

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • WuKongSecurity@BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧