«subprocess» 태그된 질문

Python 하위 프로세스 모듈을 사용하면 새 프로세스를 생성하고 입력 / 출력 / 오류 파이프에 연결하고 반환 코드를 얻을 수 있습니다. 이를 사용하여 Python에서 쉘 명령 또는 실행 파일을 실행하십시오.


16
쉘 명령 실행 및 출력 캡처
쉘 명령을 실행하고 출력 을 문자열로 반환하는 함수를 작성하고 싶습니다 . 오류 또는 성공 메시지입니다. 명령 줄에서 얻은 것과 동일한 결과를 얻고 싶습니다. 그런 일을하는 코드 예제는 무엇입니까? 예를 들면 다음과 같습니다. def run_command(cmd): # ?????? print run_command('mysqladmin create test -uroot -pmysqladmin12') # Should output something like: # mysqladmin: CREATE …
907 python  shell  subprocess 

30
하위 프로세스에서 비 블로킹 읽기 파이썬의 PIPE
하위 프로세스 모듈 을 사용하여 하위 프로세스 를 시작하고 출력 스트림 (stdout)에 연결합니다. stdout에서 비 블로킹 읽기를 실행할 수 있기를 원합니다. .readline을 비 블로킹하거나 호출하기 전에 스트림에 데이터가 있는지 확인하는 방법이 .readline있습니까? 나는 이것이 휴대용이거나 최소한 Windows와 Linux에서 작동하기를 원합니다. 여기에 내가 지금하는 방법이 있습니다 (사용 가능한 .readline데이터가없는 경우 차단됩니다 …

29
시간 초과와 함께 모듈 '하위 프로세스'사용
На этот вопрос есть ответы на 스택 오버플로 на русском : Прерывание процесса и задержка на исполнение 다음은 stdout데이터를 반환하는 임의의 명령을 실행 하거나 0이 아닌 종료 코드에서 예외를 발생 시키는 Python 코드입니다. proc = subprocess.Popen( cmd, stderr=subprocess.STDOUT, # Merge stdout and stderr stdout=subprocess.PIPE, shell=True) communicate 프로세스가 종료되기를 기다리는 데 …

11
shell = True로 시작된 파이썬 서브 프로세스를 종료하는 방법
다음 명령으로 하위 프로세스를 시작합니다. p = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True) 그러나 내가 사용하여 죽일 때 : p.terminate() 또는 p.kill() 명령이 백그라운드에서 계속 실행되므로 실제로 프로세스를 종료하는 방법이 궁금합니다. 내가 명령을 실행할 때 다음에 유의하십시오. p = subprocess.Popen(cmd.split(), stdout=subprocess.PIPE) 을 발행하면 성공적으로 종료됩니다 p.terminate().

15
하위 프로세스의 출력을 문자열에 저장합니다.
파이썬에서 시스템 호출을 만들고 파이썬 프로그램에서 조작 할 수있는 문자열에 출력을 저장하려고합니다. #!/usr/bin/python import subprocess p2 = subprocess.Popen("ntpq -p") 여기에 몇 가지 제안을 포함하여 몇 가지 시도를했습니다. subprocess.call ()의 출력 검색 그러나 운없이.
300 python  subprocess 

8
환경이 수정 된 Python 하위 프로세스 / Popen
약간 수정 된 환경에서 외부 명령을 실행하는 것이 매우 일반적인 경우라고 생각합니다. 그게 내가하는 경향이 있습니다. import subprocess, os my_env = os.environ my_env["PATH"] = "/usr/sbin:/sbin:" + my_env["PATH"] subprocess.Popen(my_command, env=my_env) 더 좋은 방법이 있다고 생각합니다. 괜찮아 보이나요?
285 python  subprocess  popen 

5
Python 2.7에서 하위 프로세스의 출력을 숨기는 방법
우분투에서 eSpeak를 사용하고 있으며 메시지를 인쇄하고 말하는 Python 2.7 스크립트가 있습니다. import subprocess text = 'Hello World.' print text subprocess.call(['espeak', text]) eSpeak는 원하는 사운드를 생성하지만 일부 오류 (ALSA lib ..., 소켓 연결 없음)로 쉘을 어지럽히므로 이전에 인쇄 된 내용을 쉽게 읽을 수 없습니다. 종료 코드는 0입니다. 불행히도 자세한 설명을 해제 …

11
서브 프로세스에 문자열을 어떻게 전달합니까? (stdin 인수 사용)
내가 다음을 수행하면 : import subprocess from cStringIO import StringIO subprocess.Popen(['grep','f'],stdout=subprocess.PIPE,stdin=StringIO('one\ntwo\nthree\nfour\nfive\nsix\n')).communicate()[0] 나는 얻다: Traceback (most recent call last): File "<stdin>", line 1, in ? File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 533, in __init__ (p2cread, p2cwrite, File "/build/toolchain/mac32/python-2.4.3/lib/python2.4/subprocess.py", line 830, in _get_handles p2cread = stdin.fileno() AttributeError: 'cStringIO.StringI' object has no attribute 'fileno' 분명히 cStringIO.StringIO …
280 python  subprocess  stdin 

5
서브 프로세스에서 'shell = True'의 실제 의미
subprocess모듈로 다른 프로세스를 호출하고 있습니다. 그러나 질문이 있습니다. 다음 코드에서 : callProcess = subprocess.Popen(['ls', '-l'], shell=True) 과 callProcess = subprocess.Popen(['ls', '-l']) # without shell 둘 다 작동합니다. 문서를 읽은 후 shell=True쉘을 통해 코드를 실행 한다는 것을 알게되었습니다 . 즉, 부재시 프로세스가 직접 시작됩니다. 그래서 내 경우에 선호해야 할 것은-프로세스를 실행하고 …
260 python  subprocess 


9
서브 프로세스 stdout을 한 줄씩 읽으십시오
내 파이썬 스크립트는 하위 프로세스를 사용하여 매우 시끄러운 리눅스 유틸리티를 호출합니다. 모든 출력을 로그 파일에 저장하고 일부를 사용자에게 보여주고 싶습니다. 나는 다음과 같이 작동 할 것이라고 생각했지만 유틸리티가 상당한 양의 출력을 생성 할 때까지 응용 프로그램에 출력이 표시되지 않습니다. #fake_utility.py, just generates lots of output over time import time i …
235 python  subprocess 

13
프로세스가 실행되는 동안 지속적으로 하위 프로세스 출력을 인쇄
파이썬 스크립트에서 프로그램을 시작하려면 다음 방법을 사용하고 있습니다. def execute(command): process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) output = process.communicate()[0] exitCode = process.returncode if (exitCode == 0): return output else: raise ProcessException(command, exitCode, output) 따라서와 같은 프로세스를 시작 Process.execute("mvn clean install")하면 프로세스가 완료 될 때까지 프로그램이 대기하고 프로그램의 전체 출력을 얻습니다. …
201 python  subprocess 

1
popen에 대한 작업 디렉토리를 지정하는 방법
파이썬에서 실행중인 명령 디렉토리를 지정하는 방법이 subprocess.Popen()있습니까? 예를 들면 다음과 같습니다. Popen('c:\mytool\tool.exe', workingdir='d:\test\local') 내 파이썬 스크립트는 C:\programs\python C:\mytool\tool.exe디렉토리에서 실행할 수 D:\test\local있습니까? 하위 프로세스의 작업 디렉토리를 어떻게 설정합니까?
187 python  subprocess  popen 


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.