Python에서 로그 파일 추적
Q: 다음과 유사하게 Python에서 로그 파일을 추적하는 비차단 또는 잠금 방법이 있습니까? 명령 tail -F? 이전 방법이 있지만 더 나은 솔루션이나 라이브러리가 있습니까?
답: 비 차단:
Linux에서 하위 프로세스와 선택 모듈을 활용하면 비차단 솔루션:
import time import subprocess import select f = subprocess.Popen(['tail','-F',filename],\ stdout=subprocess.PIPE,stderr=subprocess.PIPE) p = select.poll() p.register(f.stdout) while True: if p.poll(1): print f.stdout.readline() time.sleep(1)
이 솔루션은 출력 파이프에서 새 데이터를 폴링하고 즉시 표시합니다. time.sleep(1)을 대체하고 f.stdout.readline()을 사용자 정의 기능으로 인쇄할 수 있습니다.
차단:
차단 접근 방식의 경우 다음을 사용할 수 있습니다. 추가 모듈이 없는 하위 프로세스 모듈:
import subprocess f = subprocess.Popen(['tail','-F',filename],\ stdout=subprocess.PIPE,stderr=subprocess.PIPE) while True: line = f.stdout.readline() print line
이 방법은 새 줄이 나올 때마다 인쇄하지만 중지됩니다. tail 프로세스가 종료될 때까지 실행합니다(예: f.kill()을 통해).
위 내용은 차단하지 않고 Python에서 로그 파일을 추적하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!