perl/python/rubyでスクリプトを呼び出し、出力を取得します。

perl/python/rubyでスクリプトを呼び出し、出力を取得します。

私は "grep"でパイプされた "zcat"といくつかの異なるコマンド/スクリプトを使用して、データを含むファイルから行を抽出して動作するtcsh "main"スクリプトを継承しました。抽出された行には数値が含まれています。 tcshスクリプトで数字を使って計算するのが難しくなり、grepjobコマンドと他のコマンドを再利用する別の方法を探しています。

Cで計算が簡単にできます。多くの中間ファイルを生成せずにプログラムから数値を取得することは、あるコマンドの出力を別のコマンドにパイプするのと同じくらい困難です。

「基本」スクリプトをPerl、Ruby、またはPythonスクリプトに変換するには?私はもともとtcshスクリプトよりも読みやすいPerlとRubyの例を見つけることができませんでした。 Pythonでは、os.system呼び出しは何も返さず、終了状態のみを返します。これはCで発生するのと同じ問題です。

Pythonでos.systemを使用するよりも、プログラム、スクリプト、またはプログラムの組み合わせから情報を取得するより良い方法はありますか?それとも、PerlやRubyを詳しく見てみましょうか?

答え1

Pythonから出力を取得するためにcallコマンドを使用するos.system()のは正しい方法ではありません。単一コマンドの場合、check_output()子プロセスモジュールの機能を使用できます。

あなたの場合、私は見てみましょうリーダーこれにより、Pythonで次のことを行うことができます。

from plumbum.cmd import zcat, grep
chain = zcat["your_file_name.gz"] | grep["-i", "pattern"]
result = chain()

result次に、変数(文字列)から必要な数を取得します。

plumbum使用またはpipインストールする必要があります。easy_install

関連情報