2010-12-20 3 views
1

파이썬 스크립트 ("main.py")에서 다른 스크립트 ("sub_script.py")를 실행하기 위해 서브 프로세스 모듈을 사용하고 있습니다. 이만큼 잘 작동하위 프로세스를 사용하여 스크립트 출력을 파일로 지정 하시겠습니까?

subprocess.Popen([sys.executable, "sub_script.py"]) 

"sub_script.py는"어떤 "인쇄"를 가지고 있지 않습니다 여기

은 '실행' "sub_script.py는"그 "main.py"스크립트 코드입니다 그 안에있는 진술.

이제 "sub_script.py"의 모든 출력을 외부 파일 ("log.txt")로 보내려고합니다.

어떻게해야합니까?

+3

왜'import sub_script'가 아닌가? 왜이 모든 추가 하위 프로세스 비즈니스입니까? –

+0

Cron을 사용하여 "main.py"를 실행 중이므로 하위 프로세스를 사용하는 것이 좋습니다. – user3262424

+0

'import'와 서브 프로세스를 시작하는 것은 근본적으로 다른 일을합니다. 우선, 스크립트가'if __name__ = "__main __":'블록을 사용하면 가져 오기를 실행하지 않고 출력을 전달하는 데 어려움을 겪을 수 있습니다 (여기에서 필요합니다), 메인 스크립트는 기다려야합니다 subscript가 끝나기 위해서. 또한 일반적인 경우에는 스크립트를 가져올 수 없습니다 (파이썬 경로에서 .py 파일이라는 보장이 없으므로). –

답변

2
subprocess.Popen([sys.executable, "sub_script.py"], stdout=open("log.txt", "a")) 
관련 문제