元セブ島在住のエンジニアの僕「Tommy」が、プログラミング・英語・セブ事情を発信するブログ

Tommy's blog

【Python】Linuxコマンドの実行結果を得る【→プログラミング初心者向け】

11月 5, 2019

プログラム女子
レンタルサーバ借りたんだけど、サーバのファイルの操作もPythonでできないの?
PythonにはLinuxのコマンドを実行する方法が用意されているから、今回はこれを説明するね。
Tommy

この記事で分かること

  • PythonプログラムLinuxコマンドを実行するメリットが分かる
  • PythonプログラムでLinuxコマンドを実行する具体的な方法が分かる

PythonでLinuxコマンドの実行結果を得る概要

この記事では、Pythonを使ったLinuxコマンドの実行方法を説明します。

PythonでLinuxコマンドを実行できると、

  • 「実行しているPythonプログラムファイルの場所を知る」
  • 「実行しているPythonファイルと同じ場所にあるファイルを知る」
  • 「Linuxサーバ内のファイルの存在を確認する」
  • 「Linuxサーバ内のディレクトリを作成/削除する」

など、Pythonのプログラミングロジックで、Linuxのファイル操作を扱うことができます。

PythonでLinuxコマンドの実行結果を得る前提環境

Linuxコマンドを実行する前提の環境は、下の記事で説明している私の環境と同じ環境で確認しています。

レンタルサーバなどのLinuxサーバを使っている場合は、下の記事でプログラミングする環境の作り方を説明しています。もし、まだプログラムする環境ができていない方は、先にこちらの記事を読んで、プログラミングできる環境をつくることをおすすめします。

PythonでLinuxコマンドの実行結果を得るサンプルプログラム

ここでは、Linuxコマンドの実行するサンプルプログラムを示し、説明します。Linuxコマンドを実行する為には、Linuxコマンドを扱う為のライブラリをインポートします。そしてそのライブラリの関数を使う関数を自分で定義し、自分で定義した関数をプログラム内で呼び出すことにします。

こうすることによって、Linuxコマンドを扱うライブラリが変わったとしても変更箇所を1箇所に抑えることができます。このような自分で定義した関数を作ることを「モジュール化」と呼び、モジュール化の方法は下の記事で詳しく解説しています。

Linuxコマンドを扱うサンプルプログラムは次の順番で説明します。

  1. ライブラリのインポート
  2. Linuxコマンドをコールする関数の定義
  3. 定義した関数の実行処理

1.ライブラリのインポート

必要なライブラリをインポートします。今回は「commands」というライブラリをインポートしています。

import commands

ライブラリ「commands」をインポートする。

2.Linuxコマンドをコールする関数の定義

実際にLinuxコマンドをコールするメソッド(関数)を定義します。ここでは、メソッド名をexe_linux_commandとしました。

def exe_linux_command(command):
    return commands.getoutput(command)

  1. 「def」コマンドを使って、「exe_linux_command」という関数を定義する。
  2. 関数の処理内容として、引数で得た変数「command」を引数に指定して、commandsライブラリの関数「getoutput」をコールした戻り値を。「return」コマンドで「exe_linux_command」の戻り値として指定する。

3.定義した関数の実行処理

ここでは、上記で定義したLinuxコマンドをコールする関数「exe_linux_command」を呼び出す処理を記述します。このサンプルプログラムのLinuxコマンドは、「pwd」を指定しました。もちろん、その他のLinuxコマンドも実行可能です。

if __name__ == '__main__':
	command = 'pwd'
	print(exe_linux_command(command))

  1. 変数「command」を文字列「pwd」で初期化する。
  2. 引数に変数「command」を指定してコールした関数「exe_linux_command」の戻り値を表示する。

「その他のLinuxのコマンド」について知りたい場合は、下記の記事を参考にしてください。