Python プログラミング

Python2.6系でsubprocess.check_outputを無理やり使う

Python2.6系縛りの状況でどうしてもsubprocess.check_outputが使用したかった時の話です。

subprocess.check_outputはPython2.7からサポートされたようで、2.6系では使えませんでした。

 

私はシェルを書くことがどうしても苦手意識を持っていて(まずこれがよくない)

何とかして、Pythonから実行したいコマンド群があったのです。(それもcheck_outputで)

 

そんな時に以下のstack overflowで救いの手が

subprocess.check_output() doesn't seem to exist (Python 2.6.5)

 

色々とアンサーが書かれていますが、私が使用させていただいたのはPython2.7系からコードを流用してくるというもの

具体的には以下のコードを追加することで対応します。

 

 

これで、subprocess.check_outputが使用できるようになります。

 

ついでに、コマンド実行部分にはtry exceptでコマンド実行が失敗しても処理を継続するように例外キャッチをいれました。

今回は主にgrep関連のコマンドを実行することが多かったので、

検索結果が何もないとsubprocess.check_outputが「subprocess.CalledProcessError」というエラーを出してプログラムが終了してしまうからです。

 

ここは、通常の2.7系以降も同様の仕様かどうかは把握できてません。すみません。。

 

もう2系は卒業しようよ。アップデート大変かもだけど将来的にやばいぜったい。

 

最後にちょっと宣伝。Youtuberやってます。よかったら見てくださいw

 

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-Python, プログラミング
-, , ,

© 2020 クラインの備忘壺