我无法让python脚本在1小时间隔内重复播放。 我搜索了很多线程,但似乎没有解决方案在我的情况下工作。
无论如何,当这个脚本达到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 :(得分: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
执行特殊操作,因为您从python调用进程,因此shell不处理参数,因此不会处理$ variable名称,它们将被采用字面上。