【Python】subprocess.run() の使い方【使用例】

Python

Python の subprocess.run() の「使い方」と「コード例」を書きました。

使い方

subprocess.run()使い方です。

『実行ファイル (.exe) のフルパス』と『引数ひきすう』を『タプル (tuple)』に入れて、subprocess.run() に渡すと実行できました。

(Python) subprocess.run(args, *, stdin=None, input=None, stdout=None, stderr=None, capture_output=False, shell=False, cwd=None, timeout=None, check=False, encoding=None, errors=None, text=None, env=None, universal_newlines=None, **other_popen_kwargs)

タプルの代わりに『リスト (list)』を使用しても OK でした。

Windows の場合ですが、基本的に『環境変数にパスを追加しておく』といった作業は『不要』でした。

単純に、実行ファイル (.exe) のフルパスを指定してあげれば、実行することができました。

subprocess.run()速さについてです。

タスクマネージャーを見ていたら、subprocess.run() を実行するたびに、子プロセスが生成と消滅を繰り返していました。

ですが、別に遅いということはなくて、実用的な速さで動きました。

たとえば『Python の for 文で subprocess.run() を 100 万回実行する』といった処理もよくしていますが、コマンドの速さが問題になったことはないです。

『1つの子プロセスを使いまわす方法は無いのか?』

実行ファイル (.exe) の作りによっては可能でした。

subprocess.Popen() を使用して、標準入力と標準出力を駆使することで、1つの子プロセスを使いまわすことができました。

できましたが、それはなかなか難しくて、大変でした。

なので、通常は subprocess.run() を使用するのが良かったです。

コード例

MeCab 用辞書の作成する (MeCab, mecab-dict-index.exe)

CSV ファイルから MeCab 用の辞書ファイル (.dic) を作るコード例です。

【Windows】MeCab で NEologd の辞書を作ってインストールする方法【Python】

MeCab で形態素解析する (MeCab, mecab.exe)

MeCab で日本語のテキストを形態素解析するコード例です。

【Windows】MeCab で形態素解析する Python コード例【NEologd】

【Windows】MeCab で形態素解析する Python コード例(出力フォーマット指定)【NEologd】

【Windows】MeCab で『分かち書き』する Python コード例【NEologd】

画像の破損をチェックする (ImageMagick, identify.exe)

ImageMagick で画像ファイル(JPEG、PNG、GIF など)の破損をチェックするコード例です。

ImageMagick の中の identify.exe を使用します。

【Python】画像の破損をチェックするコード例【ImageMagick】

PDF からテキストを抽出する (Xpdf, pdftotext.exe)

Xpdf で PDF からテキストを抽出するコード例です。

Xpdf command line tools の中の pdftotext.exe を使用します。

【Python】PDF からテキストを抽出するコード例【pdftotext.exe】

PDF の破損をチェックする (QPDF, qpdf.exe)

QPDF で PDF の破損をチェックするコード例です。

QPDF の qpdf.exe を使用します。

【Python】PDF の破損をチェックするコード例【QPDF】

7-Zip でファイルやフォルダを圧縮する (7-Zip, 7z.exe)

7-Zip でファイルやフォルダを圧縮するコード例です。

7-Zip の中の 7z.exe を使用します。

Python から 7-Zip を呼び出して zip 圧縮するコード例【subprocess】

PNG を減色して軽くする (pngquant.exe)

pngquant で PNG を減色するコード例です。

pngquant の中の pngquant.exe を使用します。

【Python】PNG を減色して圧縮するコード例(標準入力と標準出力)【pngquant】

【Python】PNG を減色して圧縮するコード例(画像ファイル)【pngquant】

chm を html に変換する (hh.exe)

『コンパイルされた HTML ヘルプ ファイル (.chm)』を『普通のHTML ファイル (.html)』に変換するコード例です。

Windows 10 の "C:\Windows\hh.exe" を使用します。

Python で encoding の一覧を取得する方法とコード例(標準エンコーディングの表から一覧を取得)

タイムスタンプを変更する (PowerShell)

PowerShell でファイルやフォルダのタイムスタンプを変更するコード例です。

PowerShell を subprocess.run() から呼び出して使用します。

【Python】PowerShell でファイルとフォルダのタイムスタンプを変更するコード例

続行するには何かキーを押してください (PAUSE)

PAUSE コマンドを使用して、コマンドラインプログラムを一時停止するコード例です。

PAUSE コマンド を subprocess.run() から呼び出して一時停止します。

【Python】『続行するには何かキーを押してください』を表示する方法

実行時のフォルダ指定する (cwd)

subprocess.run() でコマンドを実行するときに、実行時のフォルダを指定するコード例です。

【Python】subprocess の run や Popen で実行時のフォルダを指定する方法 ⇒ 引数 cwd を使う

並列処理

subprocess.run() で外部プログラムを (.exe) を実行するときは、Python の並列処理(マルチプロセス処理)で高速化することができました。

⇒ 【Python】multiprocessing.Pool() の使い方【並列処理】

⇒ 【Python】concurrent.futures の使い方【並列処理】

以上です。

スポンサーリンク
シェアする(押すとSNS投稿用の『編集ページ』に移動します)
フォローする(RSSフィードに移動します)
スポンサーリンク
シラベルノート
タイトルとURLをコピーしました