非IT企業に勤める中年サラリーマンのIT日記

非IT企業でしかもITとは全く関係ない部署にいる中年エンジニア。唯一の趣味がプログラミングという”自称”プログラマー。

【Python】コマンド実行するargparseパッケージで標準出力を得る方法

   

前回、Pythonからコマンド引数のあるPythonスクリプトを実行する方法について書きました。subprocessを使ったコマンド実行する方法なのでPythonスクリプトだけでなくコマンドラインで実行するものなら対応できます。今回はそこで出力された標準出力をゲットして変数に入れる方法について紹介します。

 

基本形は以下のとおりです。実行すると変数aにファイルを一覧が格納され、print文にて表示します。

import subprocess

a = subprocess.run('ls', shell=True, capture_output=True, text=True)
print(a.stdout)
 

 

次にPythonスクリプトを実行してみましょう。実行するスクリプトは以下のように単純に文字列をコンソール上に出力するプログラムです。

# test.py
print('Hello')
 

 

こちらが呼び出す側のスクリプトです。ゲットした標準出力に追加で文字列を連結させています。str.stripで処理しているのは末尾の改行を消すためです。

import subprocess

a = subprocess.run('python3 test.py', shell=True, capture_output=True, text=True)
print(str.strip(a.stdout) + ' Python!')
 

 

結果はご覧のとおりです。

Hello Python!
 

 

スポンサーリンク

 - Python