Python의 Pexpect

Rana Hasnain Khan 2024년2월15일
  1. Python의 Pexpect
  2. Python의 Pexpect 메서드
Python의 Pexpect

Python에서 Pexpect를 예제와 함께 소개합니다.

Python의 Pexpect

Python은 매우 인기 있는 언어이며 데이터 과학 및 기계 학습에 사용됩니다. Python에는 다양한 목적으로 사용할 수 있는 내장 라이브러리가 있기 때문에 매우 강력한 언어입니다.

이 기사에서는 Python의 pexpect에 대해 알아봅니다. Pexpect는 하위 프로세스를 생성하고 자동으로 제어하는 데 사용되는 강력한 라이브러리입니다.

익스플로잇을 테스트하거나 우리가 생각할 수 있는 모든 작업을 수행할 수 있습니다.

대부분 시스템이 특정 작업에서 작동하는 방식과 해당 작업에서 시스템이 얼마나 잘 수행되는지 확인하기 위해 시스템의 사용 사례를 테스트하는 데 사용할 수 있습니다. 일상 생활의 일부 작은 작업을 자동화하는 데 사용할 수도 있습니다.

이를 사용하여 여러 서버에서 소프트웨어 패키지를 다운로드하기 위한 설정 스크립트를 구성할 수 있습니다. PexpectExpect 제품군의 대화식 다중 스레드 명령줄 인터프리터에 대한 Python 인터페이스입니다.

Pexpect는 네트워크 연결을 통해 원격 시스템에서 네트워크 프로그램을 생성하기 위한 라이브러리입니다.

일반적으로 SSH 또는 Telnet과 같은 네트워크 서비스 스크립팅에 사용됩니다. 독립 실행형 산란 프로그램에도 유용합니다.

이제 작업 중인 소프트웨어에 pexpect를 설치하겠습니다. Python에서 pexpect를 설치하는 가장 쉬운 방법은 pip 패키지 관리자를 사용하는 것입니다.

다음 명령으로 설치할 수 있습니다.

pip install pexpect

pip가 설치되어 있지 않은 경우 다음 명령으로 설치할 수 있습니다.

pip install python-pip

Python의 Pexpect 메서드

이제 애플리케이션에서 pexpect를 사용하는 방법에 대해 논의해 보겠습니다. 애플리케이션에서 세 가지 방법으로 pexpect를 사용할 수 있습니다.

우리가 논의할 첫 번째 방법은 run() 방법입니다.

PexpectRun() 메서드

Run()은 명령을 실행하고 해당 명령에서 받은 결과를 반환하는 데 사용할 수 있는 pexpect의 강력한 메서드입니다. 이 방법은 또 다른 강력한 라이브러리 방법인 os.system을 대체합니다.

이제 이 방법을 사용하여 echo 명령을 사용하여 Hello World를 인쇄해 보겠습니다. 먼저 pexpect 라이브러리를 가져온 다음 아래와 같이 run() 메서드를 사용합니다.

# python
import pexpect

print(pexpect.run("echo Hello World"))

출력:

리눅스 시스템의 pexpect 실행 방법

위의 예에서 볼 수 있듯이 우리 메서드는 pexpectrun() 메서드를 사용하여 Python 파일 내에서 명령줄 코드를 실행했습니다.

위의 예에서 주목해야 할 한 가지 중요한 점은 이 명령이 Windows가 아닌 Linux 시스템에서 작동한다는 것입니다.

PexpectSpawn() 메서드

이제 자식 프로세스를 생성하고 제어하는 데 사용할 수 있는 또 다른 pexpect 방법에 대해 설명합니다. run() 메서드 내부의 문자열을 명령줄 프롬프트로 바꾸었기 때문에 spawn()에서 동일한 작업을 수행하고 이를 사용하여 쉘 명령을 수행하고 실행 후 결과를 얻을 수 있습니다.

이제 spawn() 메서드를 사용하여 자식 프로세스를 시작하는 예제에서 사용하겠습니다. 동일한 시나리오를 사용하여 spawn을 사용하여 문자열을 echo합니다.

그런 다음 expect() 메서드에 배열을 보내 배열의 문자열에서 위의 명령을 일치시키고 아래와 같이 명령과 일치하는 요소의 위치를 반환합니다.

# python
import pexpect

childProcess = pexpect.spawn("echo Hello World")

# prints he matched index of string.
print(childProcess.expect(["Python", "Hello World", "Child Process"]))

출력:

Linux 시스템의 pexpect spawn 및 expect 메소드

위의 예에서 알 수 있듯이 배열에서 문자열의 위치는 두 번째이고 배열은 0부터 시작하므로 올바른 위치를 출력합니다.

이 기사에서는 서로 다른 기능을 수행하는 데 사용할 수 있는 pexpect의 세 가지 방법에 대해 논의했으며 마지막 예에서와 같이 함께 사용하여 큰 기능으로 만들 수 있습니다.

Rana Hasnain Khan avatar Rana Hasnain Khan avatar

Rana is a computer science graduate passionate about helping people to build and diagnose scalable web application problems and problems developers face across the full-stack.

LinkedIn