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

思想猎人 齐鲁工业大学 2014-01-01 11:33:42
有一个python 难题 问题是这样 : 我用python 调用一个 exe的程序 , 但是这个程序 需要交互,比如说 它会在 某个情况下 让你输入某个字符,内容不可预知。 请问如何用python实现。 我尝试用python 里面的 subprocess.call("app.exe") 可以 实现交互。 但是我还有 一个需求 就是同时把 app.exe 的输出内容记录下来 请问有高手能告诉我怎么办吗?
...全文
178 点赞 收藏 4
写回复
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等...
回复 点赞
YY简直太屌了 2014年01月02日
qiangfen
回复 点赞
发动态
发帖子
脚本语言(Perl/Python)
创建于2007-08-27

1.5w+

社区成员

3.3w+

社区内容

其他开发语言 脚本语言(Perl ,Python)
社区公告
暂无公告