Python 3.x에서 외부 명령을 실행하기 위해 subprocess 모듈을 사용하는 방법

WBOY
풀어 주다: 2023-07-30 17:01:23
원래의
1039명이 탐색했습니다.

Python 3.x에서 subprocess 모듈을 사용하여 외부 명령을 실행하는 방법

Python에서는 다른 프로그램 실행, 셸 명령 실행 등과 같은 시스템 명령을 실행해야 하는 경우가 많습니다. Python은 외부 명령을 쉽게 호출하고 출력을 얻을 수 있는 하위 프로세스 모듈을 제공합니다.

이 글에서는 Python 3.x에서 subprocess 모듈을 사용하여 외부 명령을 실행하는 방법을 소개하고 몇 가지 샘플 코드를 제공합니다.

  1. subprocess.run() 함수를 통해 외부 명령 실행
    subprocess.run() 함수는 Python 3.5 이상 버전의 새로운 함수로 지정된 외부 명령을 실행하는 데 사용됩니다.

다음은 subprocess.run() 함수를 사용하여 외부 명령을 실행하고 명령의 출력을 얻는 방법을 보여주는 간단한 예입니다.

import subprocess

# 执行外部命令
result = subprocess.run(['ls', '-l'], capture_output=True, text=True)

# 获取命令的输出
output = result.stdout

# 输出到控制台
print(output) 
로그인 후 복사

위 코드에서는 subprocess.run() 함수를 사용했습니다. ls -l 명령을 실행합니다. 여기서는 두 가지 매개변수를 사용하여 명령 실행을 제어합니다. Capture_output=True는 명령의 출력을 결과 개체에 캡처하는 것을 의미하고 text=True는 출력을 텍스트 형식으로 반환하는 것을 의미합니다. ls -l命令。这里我们使用了两个参数来控制命令的执行:capture_output=True 表示将命令的输出捕获到result对象中,text=True 表示将输出以文本形式返回。

  1. 通过subprocess.Popen()函数执行外部命令
    subprocess模块还提供了Popen类,它是一个更底层的接口,可以用来执行更复杂的命令,并对命令的输入/输出进行更精细的控制。

下面是一个示例,演示如何使用subprocess.Popen()函数执行外部命令,并对命令的输出进行逐行读取:

import subprocess

# 执行外部命令
process = subprocess.Popen(['ping', 'www.baidu.com'], stdout=subprocess.PIPE, text=True)

# 逐行读取输出
for line in process.stdout:
    print(line.strip())
로그인 후 복사

在上面的代码中,我们使用subprocess.Popen()函数执行了ping www.baidu.com命令,并将命令的输出通过stdout管道返回。我们通过遍历stdout管道逐行读取命令的输出,并打印到控制台。

需要注意的是,当使用Popen类执行命令时,并不会自动等待命令执行完毕。如果需要等待命令执行完毕,可以通过process.wait()函数来实现。

  1. 通过subprocess.call()函数执行外部命令
    subprocess模块还提供了call函数,用于执行外部命令,并等待其执行完毕。

下面是一个示例,演示如何使用subprocess.call()函数执行外部命令,并获取命令的返回码:

import subprocess

# 执行外部命令
return_code = subprocess.call(['git', 'clone', 'https://github.com/username/repo'])

# 输出返回码
print(return_code)
로그인 후 복사

在上面的代码中,我们使用subprocess.call()函数执行了git clone

    subprocess.Popen() 함수를 통해 외부 명령 실행

    subprocess 모듈은 더 복잡한 명령을 실행하고 제어하는 ​​데 사용할 수 있는 하위 수준 인터페이스인 Popen 클래스도 제공합니다. 보다 미세한 제어를 위한 명령 입력/출력입니다.


    다음은 subprocess.Popen() 함수를 사용하여 외부 명령을 실행하고 명령의 출력을 한 줄씩 읽는 방법을 보여주는 예입니다.

    rrreee

    위 코드에서는 subprocess.Popen( ) 함수를 실행하여 ping www.baidu.com 명령이 실행되고, 명령의 출력이 stdout 파이프를 통해 반환됩니다. stdout 파이프를 순회하여 명령줄의 출력을 한 줄씩 읽고 콘솔에 인쇄합니다.

    🎜Popen 클래스를 사용하여 명령을 실행할 때 명령이 실행될 때까지 자동으로 기다리지 않는다는 점에 유의해야 합니다. 명령이 실행될 때까지 기다려야 하는 경우 process.wait() 함수를 사용하여 이를 달성할 수 있습니다. 🎜
      🎜subprocess.call() 함수를 통해 외부 명령 실행🎜subprocess 모듈은 외부 명령을 실행하고 실행이 완료될 때까지 기다리는 데 사용되는 호출 기능도 제공합니다. 🎜🎜🎜다음은 subprocess.call() 함수를 사용하여 외부 명령을 실행하고 명령의 반환 코드를 얻는 방법을 보여주는 예입니다. 🎜rrreee🎜위 코드에서는 subprocess.call() 함수를 사용했습니다. git clone 명령을 실행하고 웨어하우스 주소를 매개변수로 전달합니다. subprocess.call() 함수를 호출하여 명령을 실행한 후에는 명령이 실행될 때까지 프로그램이 차단됩니다. 🎜🎜여기서 return_code를 통해 명령의 반환 코드를 얻을 수 있으며, 반환 코드를 기반으로 명령이 성공적으로 실행되었는지 판단할 수 있습니다. 🎜🎜요약: 🎜subprocess 모듈을 통해 Python에서 외부 명령을 쉽게 실행하고 명령의 출력 및 반환 코드를 얻을 수 있습니다. 이 기사에서는 일반적으로 사용되는 세 가지 메서드인 subprocess.run(), subprocess.Popen() 및 subprocess.call()을 소개합니다. 다양한 필요에 따라 외부 명령을 실행하는 적절한 방법을 선택하십시오. 🎜🎜이 기사가 Python 3.x에서 외부 명령을 실행하기 위해 subprocess 모듈을 사용하는 방법을 이해하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 Python 3.x에서 외부 명령을 실행하기 위해 subprocess 모듈을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿