메뉴 건너뛰기

프로그래밍


파이선에서 서브프로세스를 실행시키고 출력되는 결과를 가져오는 방법입니다.


예제는 wireshark 를 실행시켜 tcp 패킷을 캡쳐할때마다 그 출력을 파이선으로 가지고 오는 코드입니다.


#!/usr/bin/env python

import subprocess
from time import sleep

def run_command(command):
    p = subprocess.Popen(command,
                         stdout=subprocess.PIPE,
                         stderr=subprocess.PIPE,
                         shell=True)
    # Read stdout from subprocess until the buffer is empty !
    for line in iter(p.stdout.readline, b''):
        if line: # Don't print blank lines
            yield line
    # This ensures the process has completed, AND sets the 'returncode' attr
    while p.poll() is None:                                                                                                
        sleep(.1) #Don't waste CPU-cycles
    # Empty STDERR buffer
    err = p.stderr.read()
    if p.returncode != 0:
       # The run_command() function is responsible for logging STDERR 
       print("Error: " + str(err))


for line in run_command('tshark -nni en0 -Y tcp'):
        print(line)


참고자료: https://stackoverflow.com/questions/4760215/running-shell-command-from-python-and-capturing-the-output/23187248


건투를 빕니다!




이 게시물이  
AiRPAGE가  
번호 제목 글쓴이 날짜 조회 수
공지 [TIP] PYTHON 에서 "UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 6987: illegal multibyte sequence" 오류 날때... [51] 파이팅건맨 2016.02.20 176321
공지 [펌] ARM GCC Inline Assembler Cookbook 파이팅건맨 2006.08.18 22813
공지 [TIP] R에서 페이스북 페이지 정보 크롤링 하기 [6] 파이팅건맨 2017.02.11 21541
166 [TIP] PYTHON으로 유튜브 채널 영상, 조회수, 설명 크롤링 파이팅건맨 2021.07.22 1490
165 [TIP] vector<Point2f> 파라메터를 JNI에서 자바로 전달하기 (the way how to pass vector<Point2f> variable to JAVA code layer) 파이팅건맨 2020.06.27 371
164 [TIP] 외부 (PHP)코드에서 XE에 게시물 등록하기 파이팅건맨 2020.05.30 864
163 [TIP] Node.js 에서 현재 기상정보 API 호출하기 파이팅건맨 2020.02.22 2748
162 [TIP] gcc 빌드중에 /usr/bin/ld: errno: TLS definition in /lib64/libc.so.6 section .tbss mismatches non-TLS reference in ... 와 같은 오류를 만났을 때 파이팅건맨 2019.11.25 1106
161 [TIP] Windows UWP에서 시리얼 포트가 열리지 않을때 파이팅건맨 2019.11.08 1227
160 [TIP] 화면 스크롤시 HTML Element가 화면의 중간에 위치하면 감지하기 파이팅건맨 2019.10.03 2237
159 [TIP] Visual Studio 2019 에서 (배포용)설치파일 만들기 파이팅건맨 2019.09.30 3461
158 [TIP] Android에서 MS의 Face Rest API사용하기 (How to use the MS Face API on Android) 파이팅건맨 2019.07.16 705
157 [TIP] Xcode에서 boost 사용하는 방법 파이팅건맨 2019.06.28 426
156 [TIP] 아두이노에서 두근두근 Open API 호출하기 파이팅건맨 2019.06.04 2085
155 [TIP] AWS Lambda, API Gateway 를 이용하여 S3에 파일 업로드 하기 파이팅건맨 2018.06.12 1922
154 [TIP] 파이선에서 AWS Lambda API 호출시 Cognito 사용자 토큰으로 권한 확인하기 파이팅건맨 2018.06.11 1423
153 [TIP] 파이선에서 AWS Cognito 에 Sign-up, Sign-in 하는 예제 파이팅건맨 2018.06.08 1147
152 [TIP] Ajax에서 AWS Lambda Rest API CALL 하기 (How to call AWS Lambda API from Ajax) 파이팅건맨 2018.02.12 1131
151 [TIP] 각종 OAuth 로그인 예제 [6] 파이팅건맨 2018.01.30 1180
150 [TIP] 파이선에서 AWS Lambda로 만든 Restful API 호출하기 (How to call AWS Lambda Restful API from Python) 파이팅건맨 2018.01.23 811
» [TIP] 파이선에서 서브프로세스를 실행시키고 출력되는 내용을 얻어오기 파이팅건맨 2018.01.22 8846
148 [TIP] 아두이노에서 AWS Lambda로 제작한 Restful API 호출하기 (The way how to call AWS Lambda Restful API from Arduino) 파이팅건맨 2018.01.18 934
147 [TIP] 파이선에서 Redis 이벤트 받기 파이팅건맨 2017.10.12 1021
위로