Python에서 하위 프로세스를 사용하여 출력 리디렉션
Python에서 하위 프로세스 모듈을 사용하면 외부 명령을 호출할 수 있습니다. 명령을 실행할 때 출력을 파일로 리디렉션하는 것이 바람직한 경우가 많습니다.
다음 명령줄 명령을 고려하세요.
cat file1 file2 file3 > myfile
이 명령은 file1, file2, file3 파일을 연결하고 myfile 파일로 출력합니다. Python에서 비슷한 기능을 얻으려면 처음에 다음을 시도할 수 있습니다.
import subprocess, shlex my_cmd = 'cat file1 file2 file3 > myfile' args = shlex.split(my_cmd) subprocess.call(args) # Spits output in the window from which Python was called
그러나 이 접근 방식은 출력을 파일로 리디렉션하지 않습니다. 대신 Python 프로그램이 호출된 창에 인쇄합니다.
Python 3.5 솔루션
출력을 올바르게 리디렉션하려면 stdout에 열린 파일 핸들을 제공하세요. subprocess.run의 인수:
input_files = ['file1', 'file2', 'file3'] my_cmd = ['cat'] + input_files with open('myfile', "w") as outfile: subprocess.run(my_cmd, stdout=outfile)
이 솔루션은 필요 없이 출력을 myfile 파일로 효과적으로 리디렉션합니다. cat과 같은 외부 명령의 경우
위 내용은 Python에서 `subprocess` 모듈을 사용하여 외부 명령의 출력을 파일로 어떻게 리디렉션합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!