>백엔드 개발 >파이썬 튜토리얼 >Python에서 `subprocess` 모듈을 사용하여 외부 명령의 출력을 파일로 어떻게 리디렉션합니까?

Python에서 `subprocess` 모듈을 사용하여 외부 명령의 출력을 파일로 어떻게 리디렉션합니까?

DDD
DDD원래의
2024-11-29 00:50:10778검색

How do I redirect the output of an external command to a file using the `subprocess` module in Python?

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

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