我正在尝试运行可执行文件并使用subprocess.Popen; 但是,我似乎没有得到所有的输出.
import subprocess as s
from subprocess import Popen
import os
ps = Popen(r'C:\Tools\Dvb_pid_3_0.exe', stdin = s.PIPE,stdout = s.PIPE)
print 'pOpen done..'
while:
line = ps.stdout.readline()
print line
Run Code Online (Sandbox Code Playgroud)
手动打开时,它会打印比原始exe文件少两行.
我尝试了一种具有相同结果的替代方法:
f = open('myprogram_output.txt','w')
proc = Popen('C:\Tools\Dvb_pid_3_0.exe ', stdout =f)
line = proc.stdout.readline()
print line
f.close()
Run Code Online (Sandbox Code Playgroud)
谁能帮助我获取exe的完整数据?
原始exe文件最后几行o/p:
-Gdd:通用计数(1 - 1000)
-Cdd:剪切开始于(0 - 99)-Edd:剪切结束于(1 - 100)
请选择以下流文件编号:
1 - .\ pdsx100-bcm7230-squashfs-sdk0.0.0.38-0.2.6.0-prod.sao.ts
运行后得到的o/p:
-P0xYYYY : Pid been interested
Run Code Online (Sandbox Code Playgroud)
-S0xYYYY:服务ID感兴趣
-T0xYYYY:传输ID感兴趣
-N0xYYYY:网络ID感兴趣
-R0xYYYY:旧的Pid被此PID
-Gdd 替换:通用计数(1 - 1000)
所以我们可以看到一些缺失的线条.我必须写1并选择值后请选择下面显示的fule数字.
我试图使用ps.stdin.write('1 …