• ホーム
  • Python
  • Pythonから外部のアプリケーションを実行する

Pythonから外部のアプリケーションを実行する

Pythonから外部のアプリケーションを実行します。例えば、LaTeXを動かすとか。

SubprocessモジュールのRunメソッドで実行

Pythonから外部のアプリケーションを実行するにはsubprocessモジュールを使うのですが、Python3.5からrunというメソッドを使うことになったようです。

import subprocess

subprocess.run(args)

argsに実行するコマンドを指定します。

Windows10環境下でdir /bコマンドを実行してファイルの一覧を表示させてみます。

>>> import subprocess
>>> subprocess.run(['cmd','/c','dir','/b'])
alabaster
alabaster-0.7.10.dist-info
babel
Babel-2.4.0.dist-info
certifi
certifi-2017.7.27.1.dist-info
chardet
chardet-3.0.4.dist-info
colorama
colorama-0.3.9.dist-info
docutils
docutils-0.13.1.dist-info
idna
idna-2.5.dist-info
imagesize
imagesize-0.7.1.dist-info
jinja2
Jinja2-2.9.6.dist-info
markupsafe
MarkupSafe-1.0.dist-info
pygments
Pygments-2.2.0.dist-info
pytz
pytz-2017.2.dist-info
requests
requests-2.18.2.dist-info
six-1.10.0.dist-info
six.py
snowballstemmer
snowballstemmer-1.2.1.dist-info
sphinx
Sphinx-1.6.3.dist-info
sphinxcontrib
sphinxcontrib_websupport-1.0.1-py3.6-nspkg.pth
sphinxcontrib_websupport-1.0.1.dist-info
urllib3
urllib3-1.22.dist-info
__pycache__
CompletedProcess(args=['cmd', '/c', 'dir', '/b'], returncode=0)

Pythonのsite-packageディレクトリですね。

cmdはWindows10のコマンドプロンプトです。/cはそれに続くコマンドを実行せよという意味です。dirはご存じファイルとディレクトリの一覧を表示するコマンドで、/bはファイル名だけを表示しろという指示です。

この例ではdirでしたが、例えば外部のアプリケーションでファイルを変換したり(PDF→PNGとか)させるときに使えそうです。

広告

Pythonカテゴリの投稿