0

私はPythonを初めて使用し、仕事でスクリプトを入手して理解する必要があります。

私のスクリプトは、別のバイナリファイル(processedBinaryと呼びます)を処理するexeファイル(Mywork.exeと呼びます)の出力を解析します。さて、ある時点で私のscrpitは、processedBinaryの名前を取得し、それにobjdumpを実行したいと考えています。以前の作成者(私にとっては到達不能)がこの行sys.argv[1]を使用してprocessedBinaryの名前を取得したことがわかります。私のスクリプトはMyWork.exeの出力を処理します。これまでのところ、スクリプトを正常に呼び出す唯一の方法は、次を実行することです。

MyWork.exeprocessedBinary | / usr / bin / python ./myScript.py -v

そして、私のスクリプトは出力を正しく処理しますが、processedBinaryの名前をまったく取得しません(代わりに、sys.argv [1]は実際には「-v」です)。だから、私はいくつかの質問があります:

1)sys.argv [1]がprocessedBinaryの名前になるようにスクリプトを実行するより良い方法はありますか?2)前の質問の答えが「いいえ」の場合、processedBinaryの名前をより良い方法で取得する方法はありますか?3)スクリプトの実装/呼び出しについて、もっと良い提案がありますか?

前もって感謝します!

4

1 に答える 1

0

PythonスクリプトからMyWork.exeを呼び出して、processedBinaryの名前をそのスクリプトに渡すことができます。

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 に答える