Python에서 시스템 명령을 실행하는 방법에 대한 자세한 설명

巴扎黑
풀어 주다: 2017-09-16 10:07:09
원래의
1591명이 탐색했습니다.

최근 해당 테스트 프레임워크 작업을 하다가 파이썬으로 시스템 명령을 실행하는 것에 익숙하지 않다는 것을 알게 되어서, 다음 글에서는 주로 파이썬에서 시스템 명령을 실행하는 방법을 소개하고 싶었습니다. 필요하면 참조할 수 있습니다. 아래를 살펴보겠습니다.

머리말

Python은 다른 프로그램에서 쉽게 작동할 수 있고 다른 언어로 작성된 라이브러리를 쉽게 래핑할 수 있기 때문에 종종 "글루 언어"라고 불립니다. Python/wxPython 환경에서 Python 프로그램 내에서 외부 명령을 실행하거나 다른 프로그램을 시작하는 방법.

이 기사에서는 Python에서 시스템 명령을 실행하는 방법에 대한 관련 정보를 자세히 소개합니다. 아래에서는 자세히 설명하지 않겠습니다. 자세한 소개를 살펴보겠습니다.

(1) os.system()

이 메서드는 표준 C system() 함수를 직접 호출합니다. 이 함수는 하위 터미널에서 시스템 명령만 실행하고 실행을 얻을 수 없습니다. 정보를 반환합니다. system()函数,仅仅在一个子终端运行系统命令,而不能获取执行返回的信息。


>>> import os 
>>> output = os.system('cat /proc/cpuinfo') 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>> output # doesn't capture output 
0
로그인 후 복사

(2) os.popen()

这个方法执行命令并返回执行后的信息对象,是通过一个管道文件将结果返回。


>>> output = os.popen('cat /proc/cpuinfo') 
>>> output 
<open file &#39;cat /proc/cpuinfo&#39;, mode &#39;r&#39; at 0x7ff52d831540> 
>>> print output.read() 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>><span style="font-size:14px;">
로그인 후 복사

(3) commands模块


>>> import commands 
>>> (status, output) = commands.getstatusoutput(&#39;cat /proc/cpuinfo&#39;) 
>>> print output 
processor : 0 
vendor_id : AuthenticAMD 
cpu family : 21 
... ... 
>>> print status 
0
로그인 후 복사

注意1:在类unix的系统下使用此方法返回的返回值(status)与脚本或命令执行之后的返回值不等,这是因为调用了os.wait()的缘故,具体原因就得去了解下系统wait()的实现了。需要正确的返回值(status),只需要对返回值进行右移8位操作就可以了。

注意2:当执行命令的参数或者返回中包含了中文文字,那么建议使用subprocess。

(4) subprocess模块

该模块是一个功能强大的子进程管理模块,是替换os.system, os.spawn*


>>> import subprocess 
>>> subprocess.Popen(["ls", "-l"]) <strong> # python2.x</strong> doesn&#39;t capture output 
>>> subprocess.run(["ls", "-l"])  <strong># python3.x</strong> doesn&#39;t capture output 
<subprocess.Popen object at 0x7ff52d7ee490> 
>>> total 68 
drwxrwxr-x 3 xl xl 4096 Feb 8 05:00 com 
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Desktop 
drwxr-xr-x 2 xl xl 4096 Jan 21 02:58 Documents 
drwxr-xr-x 2 xl xl 4096 Jan 21 07:44 Downloads 
... ... 
>>>
로그인 후 복사
🎜🎜(2) os.popen()🎜🎜🎜🎜🎜 이 메소드는 명령어를 실행하고 실행된 정보 객체를 반환하며, 그 결과를 파이프라인 파일을 통해 반환합니다. 🎜🎜🎜🎜🎜rrreee🎜🎜🎜(3) 명령 모듈🎜🎜🎜🎜🎜🎜🎜rrreee🎜🎜참고 1: 🎜🎜유닉스 계열 형식으로 반환하려면 이 방법을 사용하세요. system os.wait()가 호출된 후의 반환 값(상태)이 다르기 때문입니다. 구체적인 이유로 시스템 wait()의 구현을 이해해야 합니다. 올바른 반환 값(상태)이 필요한 경우 반환 값을 8비트만큼 오른쪽으로 이동하기만 하면 됩니다. 🎜🎜🎜🎜참고 2: 🎜🎜실행 명령의 매개변수 또는 반환 값에 중국어 텍스트가 포함된 경우 하위 프로세스를 사용하는 것이 좋습니다. 🎜🎜🎜🎜🎜(4) 하위 프로세스 모듈 🎜🎜🎜🎜🎜이 모듈은 os.system, os.spawn*을 대체하는 강력한 하위 프로세스 관리 모듈입니다. 다른 방법. 🎜🎜🎜🎜🎜rreee

위 내용은 Python에서 시스템 명령을 실행하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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