0

我对 python 很陌生,我在工作中得到了一个脚本,我需要弄清楚。

我的脚本解析一些 exe 文件(我们称之为 Mywork.exe )的输出,该文件处理另一个二进制文件(我们称之为 processesBinary)。现在,我的脚本在某些时候想要取一个已处理二进制文件的名称并对其进行 objdump。我可以看到以前的作者(对我来说无法访问)已经使用这一行 sys.argv[1] 来获取processedBinary 的名称。我的脚本处理 MyWork.exe 的输出。到目前为止,我成功调用脚本的唯一方法是运行:

MyWork.exe 已处理二进制 | /usr/bin/python ./myScript.py -v

然后我的脚本正确处理输出,但它根本没有获取 processesBinary 的名称(相反 sys.argv[1] 实际上是“-v”)。所以,我有几个问题:

1) 有没有更好的方法来运行我的脚本,以便 sys.argv[1] 是已处理二进制文件的名称?2) 如果上一个问题的答案是否定的,有没有办法以更好的方式获取processedBinary 的名称?3)您对脚本的实现/调用有更好的建议吗?

先感谢您!

4

1 回答 1

0

您可以从 Python 脚本调用 MyWork.exe 并将 processesBinary 的名称传递给该脚本。

import subprocess
import sys
command = 'MyWork.exe %s' % (sys.argv[1])
proc = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
proc.wait()
output = (proc.stdout.read(), proc.stderr.read())

输出现在是 MyWork.exe 的 stdout 和 stderr 的元组

于 2012-04-02T10:28:38.193 回答