sbuprocessについて
subprocess.run() stdout, stderrの実行結果を変数として渡す
import subprocess
get_ip_addr = subprocess.run(['ip', '-4', 'address'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
cmd_result = get_ip_addr.stdout.decode('utf-8')
subprocess.run() stdout, stderrの実行結果をそのままファイルに書き出す
import subprocess
with open('out.txt', 'w') as f:
subprocess.run(['ip', '-4', 'address'], stdout=f, stderr=f, encoding='utf-8')
subprocess.run() stdinにファイルからの読み込みを利用する
import subprocess
with open('out.txt', 'r') as fr:
result = subprocess.run('cat', stdin=fr, encoding='utf-8')
subprocess.run() 結果をファイルに落としてから実行
import subprocess
with open('outfile.txt', 'w') as f:
rf = subprocess.run(['netsh', 'interface', 'ipv4', 'show', 'address', 'Wi-Fi'],
stdout=f, stderr=f, text=True ,encoding='utf-8')
with open('outfile.txt', 'r', encoding='utf-8') as fr:
outfile = fr.read()
outfile0 = outfile.splitlines()
for line in outfile0:
line0 = line.split()
if 'Default' in line0:
default_gateway = line0[2]
ip_reach = subprocess.run(['ping', default_gateway, '-n', '1'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if ip_reach.returncode == 0:
print(f'Default gateway ({default_gateway}) is reachable \n')
else:
print(f'Default gateway ({default_gateway}) is NOT reachable \n')
subprocess.run() 結果を変数にいれて実行
import subprocess
dfg_addr = subprocess.run(['netsh', 'interface', 'ipv4', 'show', 'address', 'Wi-Fi'],
stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
cmd_netsh = dfg_addr.stdout.decode('utf-8')
netsh_result = cmd_netsh.splitlines()
for line in netsh_result:
line0 = line.split()
if 'Default' in line0:
default_gateway = line0[2]
ip_reach = subprocess.run(['ping', default_gateway, '-n', '1'],
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
if ip_reach.returncode == 0:
print(f'Default gateway ({default_gateway}) is reachable \n')
else:
print(f'Default gateway ({default_gateway}) is NOT reachable \n')