>  기사  >  백엔드 개발  >  Python에서 시스템 명령을 실행하는 방법에 대한 자세한 설명

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

巴扎黑
巴扎黑원래의
2017-09-16 10:07:091554검색

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

머리말

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.