Python から subprocess モジュールで外部プログラムを起動する
Python から外部プロセスを起動する場合は subprocess モジュールを使う方法があります。 非同期処理等を考えない、簡単なサンプルをメモしておきます。 subprocess.run()
の実行結果はバイト配列なので sys.stdout.buffer.write()
を使って標準出力しています。
| #!/usr/bin/env python
import subprocess
import sys
address = '8.8.8.8'
result = subprocess.run('/usr/bin/whois --host whois.iana.org ' + address, shell=True, stdout=subprocess.PIPE)
sys.stdout.buffer.write(result.stdout)
|
実行結果は以下の通りです。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 | # python sample-whois.py
% IANA WHOIS server
% for more information on IANA, visit http://www.iana.org
% This query returned 1 object
refer: whois.arin.net
inetnum: 8.0.0.0 - 8.255.255.255
organisation: Administered by ARIN
status: LEGACY
whois: whois.arin.net
changed: 1992-12
source: IANA
|