#Python3 subprocessでPingコマンドの出力結果をAWKしたりして欲しい値を出しています。
結果バイト列になっています。タプル型のバイト列にになっている出力結果を文字列に変換したいです。
お力沿いお願いいたします。
[出力結果]
(b'0.086\n', b'') <class 'tuple'> (b'0.855\n', b'') <class 'tuple'>
[理想出力結果]
0.086 0.855
python3
import os import sys import argparse import subprocess class Ping(object): def __init__(self, hosts): for host in hosts: # pingコマンド p1 = subprocess.Popen(["ping", "-c", "2", host],stdout=subprocess.PIPE,stderr=subprocess.PIPE) p2 = subprocess.Popen(["grep", "rtt"],stdin=p1.stdout,stdout=subprocess.PIPE,stderr=subprocess.PIPE) p3 = subprocess.Popen(["awk", "-F", '/', '{print $4}'],stdin=p2.stdout,stdout=subprocess.PIPE,stderr=subprocess.PIPE) p4 = subprocess.Popen(["tr", "-d", 'mdev ='],stdin=p3.stdout,stdout=subprocess.PIPE,stderr=subprocess.PIPE) p1.stdout.close() p2.stdout.close() p3.stdout.close() out = p4.communicate() print(out) print(type(out)) def main(): # 引数の処理 parser = argparse.ArgumentParser(description='Ping') parser.add_argument('-g', '--graph', help='グラフの名前を設定') parser.add_argument('-i', '--ipaddress', nargs='*', help='複数の場合はスペースで区切る') args = parser.parse_args() # pingホスト hosts = args.ipaddress # ping試験 Ping(hosts) if __name__ == '__main__': main()
まだ回答がついていません
会員登録して回答してみよう