python调用exe,希望高手指点。
时间:2011-12-06
来源:互联网
如题,这个问题并不新鲜,但是我确实搞不明白了,这次。
一个exe程序,我在cmd下可以运行(运行时候不需要任何参数输入),找到exe路径,敲回车就行。正常输出结果。但是得等一会才会输出结果(输出一个txt文本),因为本身exe运行起来需要2分钟时间。
但是我在用python调用的时候就是没反应啊。我的代码这样:
Python code
其中,dstDir=‘D:\Fortran\users\Ace\2011-12-06-10-17-16\’
exe_1打印出来是‘D:\Fortran\users\Ace\2011-12-06-10-17-16\interpolation.exe’
我用的是需要一个变量的文件夹路径,我用的是os.popen。python的shell也没有报错,但就是没有txt的结果输出。
我改成os.system(exe_1)后,cmd黑框闪了一下,之后也没有结果输出。
请问这是咋回事啊?
之前我也做过python调用exe的东西啊,没有问题啊当时。
如:
os.popen('D:\DBS\EXE\DBSoTOraw.exe %s %s %s' %(a[0].decode('utf-8'),'D:\DBS\wu.raw',threshold))
这个还传递参数呢。
我就是把他写成了绝对路径,如:os.system('D:\Fortran\users\Ace\2011-12-06-10-17-16\interpolation.exe’)
也有问题,闪一下黑框,无txt结果输出。
着急啊。。。咋回事。。。
= =!
一个exe程序,我在cmd下可以运行(运行时候不需要任何参数输入),找到exe路径,敲回车就行。正常输出结果。但是得等一会才会输出结果(输出一个txt文本),因为本身exe运行起来需要2分钟时间。
但是我在用python调用的时候就是没反应啊。我的代码这样:
Python code
exe_1=dstDir+'interpolation.exe' print exe_1 os.popen(exe_1)
其中,dstDir=‘D:\Fortran\users\Ace\2011-12-06-10-17-16\’
exe_1打印出来是‘D:\Fortran\users\Ace\2011-12-06-10-17-16\interpolation.exe’
我用的是需要一个变量的文件夹路径,我用的是os.popen。python的shell也没有报错,但就是没有txt的结果输出。
我改成os.system(exe_1)后,cmd黑框闪了一下,之后也没有结果输出。
请问这是咋回事啊?
之前我也做过python调用exe的东西啊,没有问题啊当时。
如:
os.popen('D:\DBS\EXE\DBSoTOraw.exe %s %s %s' %(a[0].decode('utf-8'),'D:\DBS\wu.raw',threshold))
这个还传递参数呢。
我就是把他写成了绝对路径,如:os.system('D:\Fortran\users\Ace\2011-12-06-10-17-16\interpolation.exe’)
也有问题,闪一下黑框,无txt结果输出。
着急啊。。。咋回事。。。
= =!
作者: Ace_wgk 发布时间: 2011-12-06
Python code
我试了如果没有:
return_code = proc.wait()
voutput=proc.stdout.read()
这两句,py文件一下就执行完了,如果加上应该可以了吧,你试试。
[root@RHEL6B pycode]# ./py13.py not set: [root@RHEL6B pycode]# vim py13.py [root@RHEL6B pycode]# ./py13.py Success: this is test text. [root@RHEL6B pycode]# cat py13.py #!/usr/bin/env python #coding:utf-8 from subprocess import Popen, PIPE return_code=-999 proc = Popen(['/root/shcode/sleep.sh'], stdout=PIPE, stderr=PIPE) return_code = proc.wait() voutput=proc.stdout.read() if return_code == 0: print "Success:\n%s" % voutput elif return_code == -999: print 'not set:', voutput else: print "Failure %s:\n%s" % (return_code, voutput) [root@RHEL6B pycode]# cat /root/shcode/sleep.sh #!/bin/bash sleep 10 echo this is test text. [root@RHEL6B pycode]#
我试了如果没有:
return_code = proc.wait()
voutput=proc.stdout.read()
这两句,py文件一下就执行完了,如果加上应该可以了吧,你试试。
作者: askandstudy 发布时间: 2011-12-06
闪一下黑框是不是报错了啊,用Eclipse调试下
作者: thundor 发布时间: 2011-12-06
Python code
我这样写代码,shell里显示:“Failure -1:”
依然没有输出txt的结果,倒是运行的时候等待了一会。
#!/usr/bin/env python #coding:utf-8 from subprocess import Popen, PIPE return_code=-999 proc = Popen(['D:/Fortran/users/Ace/2011-12-06-10-18-21/interpolation.exe'], stdout=PIPE, stderr=PIPE) return_code = proc.wait() voutput=proc.stdout.read() if return_code == 0: print "Success:\n%s" % voutput elif return_code == -999: print 'not set:', voutput else: print "Failure %s:\n%s" % (return_code, voutput)
我这样写代码,shell里显示:“Failure -1:”
依然没有输出txt的结果,倒是运行的时候等待了一会。
作者: Ace_wgk 发布时间: 2011-12-06
执行失败了吧,返回码是-1
作者: askandstudy 发布时间: 2011-12-06
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28