2014-07-21 4 views
0

파이썬 스크립트를 1 시간 간격으로 반복 작성하는 데 문제가 있습니다. 많은 스레드를 검색했지만 내 상황에서는 해결 방법이없는 것 같습니다.라디오 스트림 녹화 반복 Python

어쨌든이 스크립트는 60 분/1 시간 표시에 도달하면 자동으로 다시 시작될 수 있습니다. 여기

는,이 스탠드로

import subprocess 
import os 
os.system("command") 
subprocess.call(['streamripper', 'http://stream05.akaver.com/retrofm_low.ogg', '-d', './streams', '-l', '10800', '-a', ' tb$FNAME', ]) 

답변

0
당신은 당신이 얻을 수있는, 그래서는 popen 사용하여 비동기 서브 프로세스를 호출해야합니다

이 방법은 그것을

import subprocess, time 

while True: #change this to check for a quit condition 
    ripper = subprocess.popen([ 
     'streamripper', 
     'http://stream05.akaver.com/retrofm_low.ogg', 
     '-d', 
     './streams', 
     '-l', 
     '10800', 
     '-a', 
     ' tb$FNAME' 
    ]) 
    time.sleep(3600) #sleep for 60 minutes 
    ripper.terminate() 

을 종료하는 코드입니다 코드는 디스크에 파일을 계속 덮어 씁니다. 이 문제를 방지하려면 카운터를 기반으로 루프 내의 파일 이름을 수정해야 할 수 있습니다.

streamripper가 tb$FNAME으로 특별한 작업을 수행하지 않으면 파이썬에서 프로세스를 호출하기 때문에 인수가 쉘에 의해 처리되지 않으므로 $ 변수 이름이 처리되지 않고 문자 그대로 취해집니다.