我希望我的python脚本处理sigcheck.exe
工具的结果。
以下命令在cmd.exe
中运行时打印出一个横幅(这似乎是stderr输出)并将stdout输出写入csv文件:
sigcheck64 -c c:\tmp\unsigned.exe > csv_output.csv
这将显示stdout输出并将stderr(标题)写入文件: sigcheck64 -c c:\ tmp \ unsigned.exe 2> csv_output.csv
但是,如果我尝试在python中执行此操作,则stdout和stderr输出都在stdout中。
import subprocess
p = subprocess.Popen(["sigcheck64.exe","-c", c:\tmp\unsigned.exe"],
shell=True,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
o,e = p.communicate()
print("stdout: %s" % o)
print("stderr: %s" % e)
我找不到分别获取stdout输出的方法。我尝试了其他子进程函数,并尝试将stderr重定向到devnull。
我可以解析合并的输出,但这很难看,而且,我想知道这里发生了什么。