Python의 Pexpect
Python에서 Pexpect
를 예제와 함께 소개합니다.
Python의 Pexpect
Python은 매우 인기 있는 언어이며 데이터 과학 및 기계 학습에 사용됩니다. Python에는 다양한 목적으로 사용할 수 있는 내장 라이브러리가 있기 때문에 매우 강력한 언어입니다.
이 기사에서는 Python의 pexpect
에 대해 알아봅니다. Pexpect
는 하위 프로세스를 생성하고 자동으로 제어하는 데 사용되는 강력한 라이브러리입니다.
익스플로잇을 테스트하거나 우리가 생각할 수 있는 모든 작업을 수행할 수 있습니다.
대부분 시스템이 특정 작업에서 작동하는 방식과 해당 작업에서 시스템이 얼마나 잘 수행되는지 확인하기 위해 시스템의 사용 사례를 테스트하는 데 사용할 수 있습니다. 일상 생활의 일부 작은 작업을 자동화하는 데 사용할 수도 있습니다.
이를 사용하여 여러 서버에서 소프트웨어 패키지를 다운로드하기 위한 설정 스크립트를 구성할 수 있습니다. Pexpect
는 Expect
제품군의 대화식 다중 스레드 명령줄 인터프리터에 대한 Python 인터페이스입니다.
Pexpect
는 네트워크 연결을 통해 원격 시스템에서 네트워크 프로그램을 생성하기 위한 라이브러리입니다.
일반적으로 SSH 또는 Telnet과 같은 네트워크 서비스 스크립팅에 사용됩니다. 독립 실행형 산란 프로그램에도 유용합니다.
이제 작업 중인 소프트웨어에 pexpect
를 설치하겠습니다. Python에서 pexpect
를 설치하는 가장 쉬운 방법은 pip
패키지 관리자를 사용하는 것입니다.
다음 명령으로 설치할 수 있습니다.
pip install pexpect
pip
가 설치되어 있지 않은 경우 다음 명령으로 설치할 수 있습니다.
pip install python-pip
Python의 Pexpect
메서드
이제 애플리케이션에서 pexpect
를 사용하는 방법에 대해 논의해 보겠습니다. 애플리케이션에서 세 가지 방법으로 pexpect
를 사용할 수 있습니다.
우리가 논의할 첫 번째 방법은 run()
방법입니다.
Pexpect
의 Run()
메서드
Run()
은 명령을 실행하고 해당 명령에서 받은 결과를 반환하는 데 사용할 수 있는 pexpect
의 강력한 메서드입니다. 이 방법은 또 다른 강력한 라이브러리 방법인 os.system
을 대체합니다.
이제 이 방법을 사용하여 echo
명령을 사용하여 Hello World
를 인쇄해 보겠습니다. 먼저 pexpect
라이브러리를 가져온 다음 아래와 같이 run()
메서드를 사용합니다.
# python
import pexpect
print(pexpect.run("echo Hello World"))
출력:
위의 예에서 볼 수 있듯이 우리 메서드는 pexpect
의 run()
메서드를 사용하여 Python 파일 내에서 명령줄 코드를 실행했습니다.
위의 예에서 주목해야 할 한 가지 중요한 점은 이 명령이 Windows가 아닌 Linux 시스템에서 작동한다는 것입니다.
Pexpect
의 Spawn()
메서드
이제 자식 프로세스를 생성하고 제어하는 데 사용할 수 있는 또 다른 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"]))
출력:
위의 예에서 알 수 있듯이 배열에서 문자열의 위치는 두 번째이고 배열은 0부터 시작하므로 올바른 위치를 출력합니다.
이 기사에서는 서로 다른 기능을 수행하는 데 사용할 수 있는 pexpect
의 세 가지 방법에 대해 논의했으며 마지막 예에서와 같이 함께 사용하여 큰 기능으로 만들 수 있습니다.
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