私はPythonスクリプトから少数のシェルスクリプトを実行しています。特定のシェルスクリプト(コードの最後の行)の呼び出しは、Hiveクエリを実行してテーブル情報を取得するために使用され、この出力をファイルにリダイレクトします。ここで私のpythonスクリプトのように見えます。私はこれを実行するとシェルスクリプト出力をpythonスクリプトからリダイレクトする方法
$ cat test.py
import argparse
from subprocess import call
parser = argparse.ArgumentParser()
parser.add_argument('-c','--cutoff',required=True)
args = parser.parse_args()
Table="elements_status_values_"+ args.cutoff
call(["clear"])
print ">> Running the hive query"
call(["hive", "-S", "-e" "select * from %s order by rand() limit 2;" % cutoffTable])
、私は端末に結果を得るが、私は、出力を使用して、いくつかのより多くの操作を行うにはPythonスクリプトからの出力をファイルにリダイレクトする必要があります。だから私は基本的には、同じスクリプト内の他の操作のためにファイルを使用できるようにファイルにリダイレクトされるように私のハイブクエリ出力をしたい。シェルスクリプトでは、 '>'を使用して出力をファイルにリダイレクトできますが、これはPythonを使って行うことができますか? これに関連する投稿を検索しましたが、それらのすべてがpythonスクリプトの出力を私が欲しくないファイルにリダイレクトしています。
http://stackoverflow.com/questions/4856583/how-do-i-pipe-a-subprocess-call-:
現在のpython-固有の方法は
subprocess.run
を使用すると、文字通りその標準出力をチェックすることですイン・パイソン・ツー・ア・テキスト・ファイル –