>php教程 >PHP开发 >Python에서 Linux 시스템 명령을 실행하는 4가지 방법

Python에서 Linux 시스템 명령을 실행하는 4가지 방법

高洛峰
高洛峰원래의
2016-11-23 13:21:491697검색

(1) os.system

서브 터미널에서만 시스템 명령을 실행하며 명령 실행 후 반환 정보를 얻을 수 없습니다.

system(command) -> 서브셸에서 명령(문자열)을 실행합니다.

명령줄에서 실행하면 결과가 직접 인쇄됩니다

>>>

04101419778.CHM bash 문서 미디어 py-django 비디오
11.wmv 책 다운로드 그림 python
all-20061022 데스크톱 예제 프로젝트 도구

(2) os.popen

The 메소드는 명령을 실행할 뿐만 아니라 실행된 정보 객체도 반환합니다.

popen(command [, mode='r' [, bufsize]]) -> 파일 객체를 반환하는 명령에서


>>>tmp = os.popen('ls *.py').readlines()

>>>tmp

출력[21]:
['dump_db_pickle.py ',
'dump_db_pickle_recs.py ',
'dump_db_shelve.py ',
'initdata.py ',
'__init__.py' ,
' make_db_pickle.py ',
'make_db_pickle_recs.py',
'make_db_shelve.py',
'peopleinteract_query.py',
'reader.py',
' testargv.py ',
'teststreams.py ',
'update_db_pickle.py ',
'writer.py ']

장점은 반환된 결과를 변수에 할당하는 것입니다. 프로그램 처리를 용이하게 합니다.

(3) 모듈 하위 프로세스 사용

>>> import subprocess

>>> , "arg2"],shell=True)

반환 및 출력 가져오기:

하위 프로세스 가져오기

p = subprocess.Popen('ls', shell=True, stdout=subprocess . PIPE, stderr=subprocess.STDOUT)

p.stdout.readlines()의 라인:
인쇄 라인,
retval = p.wait()

(4) 모듈 사용 명령

>>> 가져오기 명령

>>> dir(commands)

['__all__', '__builtins__', '__doc__', '__file__', '__name__ ' , 'getoutput', 'getstatus','getstatusoutput', 'mk2arg', 'mkarg']
>>> Commands.getoutput("date")
'Wed 6월 10일 19:39: 57 CST 2009'
>>
>>> Commands.getstatusoutput("date")
(0, 'Wed Jun 10 19:40:41 CST')

참고: 실행 명령의 매개변수나 반환값에 한자가 포함된 경우 하위 프로세스를 사용하는 것이 좋습니다. os.popen을 사용하면 다음 오류가 발생합니다.

Traceback(최근 호출 마지막):

파일 "./test1.py", 56행, inmain()

파일 "./test1.py", 45행, in main
Fax.sendFax()
파일 "./ mailfax/Fax.py", 13행, sendFax
os.popen(cmd)
UnicodeEncodeError: 'ascii' 코덱은 46-52 위치의 문자를 인코딩할 수 없습니다: 서수는 범위 내에 있지 않습니다(128 )

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