Python pexpect 모듈을 윈도우에서 사용하기

2016. 9. 12. 12:40·IT기술 관련/파이썬_루비 등 언어
반응형

출처: http://egloos.zum.com/mcchae/v/11088170


지난번 TCL+Expect를 통하여 윈도우에서 CLI 자동화에 대하여 약간 살펴보았는데,
윈도우용 python expect 모듈인 pexpect가 제대로 동작하지 않는 것으로 알고 있었습니다만,
구글의 도움과 몇가지 시행착오를 통하여 드디어 성공하였습니다.
(그동안 한 두번 시도를 했다가 실패한 적도 있네요)

물론 리눅스와는 Child Process 관련 작업 및 Terminal IO 등의 문제 때문에 완벽한
호환은 아니더라도, 어느 정도(대부분의 필요한 정도는 가능합니다) 
작업이 가능한 것은 확인하였습니다.

다음은 그 방법입니다.

우선 윈도우용 파이썬이 필요합니다.
다음 다운로드 사이트 에서,

python 2.7.6 Windows Installer 를 다운받습니다.
(64bit용 윈도우 7 OS에서도 잘 동작했습니다)



위와 같은 winpexpect 사이트에 들어가셔서,


상단 오른편의 Download를 누르고, Tags를 눌러 위와 같은 것의 winpexpect-1.5 zip을 다운받았습니다.

그 다음은, pywin32 사이트 에서,


위에서 Browse All Files를 눌러, 최신 Build (이 글을 작성하는 당시 Build 218이 최신 이었음)에서


64bit 윈도우에서도 python2.7 win32 버전을 설치했으므로, 상단에서도 pywin32-218.win32-py2.7.exe 를 다운받았습니다.

그 다음, winpexpect를 설치하기 위해서는 윈도우용 setuptools가 필요한데,

pypi/setuptools#windows 에 들어가셔서,


우측 상단에 ez_setup.py 를 다운받습니다.

이제 다음과 같이 설치가 가능합니다.



1) python-2.7.6.msi 로 파이썬 인터프리터를 설치합니다.

2) pywin32-218.win32-py2.7.exe 로 pywin32 모듈을 설치합니다.

3) 명령창에서 ez_setup.py 를 설치합니다.


4) winpexpect 설치
명령창에서 setup.py install 을 실행합니다.


이제 winpexpect를 이용하여 다음과 같은 파이썬 프로그램이 가능합니다.


import sys
from winpexpect import winspawn as spawn

with open('foo.out','w') as ofp:

 child = spawn('cmd.exe', logfile=ofp)
 child.expect ('>')
 child.sendline ('plink 
toor@192.168.189.128')


 child.expect ('password:.*')
 child.sendline ('r')

 child.expect ('~\$ ')
 child.sendline ('cp /etc/hosts /tmp/hosts')

 child.expect ('~\$ ')
 child.sendline ('cat /tmp/hosts')

 child.expect ('~\$ ')
 child.sendline ('')

 child.expect ('~\$ ')
 child.sendline ('exit')

 child.expect ('>')
 child.sendline ('exit')



참고할 만한 사항입니다.

- spawn은 winspawn 인데 as로 aliasing 시켜서 사용하였습니다.
- spawn시에 logfile에 write file stream을 줌으로써 모든 상황이 해당 파일로 기록되게 할 수 있습니다.
- 바로 command out으로 출력을 할 경우 결과가 제대로 capture 되지 않아 그 위에 있는 cmd.exe를 
  우선 실행시키고 나서 필요 명령을 실행시켰습니다.
  (Linux의 shell 을 실행하고 나서 하위 명령을 수행한 형태)


어느분께는 도움이 되셨기를...

반응형
저작자표시 (새창열림)

'IT기술 관련 > 파이썬_루비 등 언어' 카테고리의 다른 글

pexpect 를 이용한 ssh 접속 자동화  (0) 2016.09.12
치명적 파이썬 (Violent Python) – 0×02 SSH 공격도구  (0) 2016.09.12
[파이썬, Python] 하위 폴더를 포함한 파일 리스트 출력하기 예제 2.  (0) 2016.09.12
[파이썬, Python] py2exe로 실행파일 만들기  (0) 2016.09.12
python - Reading Excel sheet with xlrd (xlrd를 이용한 파이썬 엑셀 파일 읽기)  (0) 2016.09.12
'IT기술 관련/파이썬_루비 등 언어' 카테고리의 다른 글
  • pexpect 를 이용한 ssh 접속 자동화
  • 치명적 파이썬 (Violent Python) – 0×02 SSH 공격도구
  • [파이썬, Python] 하위 폴더를 포함한 파일 리스트 출력하기 예제 2.
  • [파이썬, Python] py2exe로 실행파일 만들기
호레
호레
창업 / IT / 육아 / 일상 / 여행
    반응형
  • 호레
    Unique Life
    호레
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 법률
        • 기본
        • 개인정보보호법
        • 정보통신망법
        • 전자금융거래법
        • 전자금융감독규정
        • 신용정보법
        • 온라인투자연계금융업법
      • 창업
        • 외식업 관련
        • 임대업 관련
        • 유통업 관련
        • 세무 관련
        • 마케팅 관련
        • 기타 지식
        • 트렌드
        • Youtube
      • IT기술 관련
        • 모바일
        • 윈도우
        • 리눅스
        • MAC OS
        • 네트워크
        • 빅데이터 관련
        • A.I 인공지능
        • 파이썬_루비 등 언어
        • 쿠버네티스
        • 기타 기술
      • 퍼블릭 클라우드 관련
        • Azure
        • GCP
        • AWS
      • 정보보안 관련
        • QRadar
        • Splunk
        • System
        • Web
      • 기타
        • 세상 모든 정보
        • 서적
      • 게임 관련
        • 유니티
      • 부동산
      • 맛집 찾기
        • 강남역
        • 양재역
        • 판교역
        • ★★★★★
        • ★★★★
        • ★★★
        • ★★
        • ★
      • 결혼_육아 생활
        • 리얼후기
        • 일상
        • 육아
        • 사랑
        • Food
      • 영어
        • 스피킹
        • 문법
        • 팝송
        • 영화
      • K-컨텐츠
        • 드라마
        • 영화
        • 예능
      • 독서
      • 프로젝트 관련 조사
        • 시스템 구축
        • 로그 관련
        • 웹
        • APT
        • 모의 해킹
        • DB
        • 허니팟
        • 수리카타
        • 알고리즘
        • FDS
      • 기업별 구내 식당 평가
        • 한국관광공사
        • KT telecop
        • KT M&S
        • KT powertel
        • KT cs 연수원
        • 진에어
      • 대학 생활
        • 위드윈연구소
        • 진로 고민
        • 채용정보
        • 자동차
        • 주식
        • 악성코드
        • 게임 보안
      • 쉐어하우스
  • 블로그 메뉴

    • 홈
    • 게임 관련
    • IT 기술 관련
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    복리후생
    수제버거존맛
    점심
    돈까스
    런치
    수제버거맛집
    판교맛집
    수제버거
    AWS
    유니티
    보안가이드
    맛집
    판교
    대통령
    마케팅
    쥬쥬랜드
    이재곧죽습니다
    상호관세
    무역전쟁
    판교역
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
호레
Python pexpect 모듈을 윈도우에서 사용하기
상단으로

티스토리툴바