2
일반 배경 프로세스를 시작하고 기록하는 라이브러리 기능이 있습니다.닫힌 후에 로그 파일이 비어 있으면 삭제하십시오.
def LaunchAndLog(cmd):
cmd_args = cmd.split() # Split arguments into array
logfile = cmd_args[0] + '.log'
with open(logfile,'w') as log:
return subprocess.Popen(cmd_args, stdout=log,stderr=log)
홈페이지 질문 : 로그 파일에 따라 그이 폐쇄되고, 그래서 그것이 자동으로 삭제됩니다 비어있는 경우, 을이 기능을 개정이 가능합니까?
참고 : 나는이 기능을 호출하고 잊어 버릴 수있는 해결책을 원합니다. 작업이 끝난 후 매번 정리 기능을 호출하는 것을 기억하고 싶지 않습니다.
(거부 됨) 아이디어 :threading
을 사용하면 프로세스 및/또는 로그 파일을 모니터링하는 별도의 스레드를 실행할 수 있지만 필요 이상으로 복잡해 보입니다.
참고 : : 파이썬 2.7에서 작동해야하지만, 파이썬 3 솔루션에도 관심이 있습니다 (더 간단하다면).
아주 좋은 아이디어를 통합 supergra에서 편집을 거부 :
그런 다음
with
문이됩니다 : 파일 오브젝트를 처리하기 위해 자신의 클래스를 만듭니다 , 그리고 그것을 보는 좋은 방법! – supergra이것은 작성된대로 작동하지 않습니다. 그것은'__enter__' 함수를 필요로하고'__exit__' 함수는 1이 아닌 4 개의 인수를 받아 들일 필요가 있습니다. 여기에 편집을보십시오 : http://stackoverflow.com/review/suggested-edits/3772114 바보들. – supergra
그 편집으로 완벽하게 작동합니다! – supergra