修改脚本以从文件中读取以尝试列表中的URL

时间:2017-04-26 15:53:44

标签: python bash wget

我可以使用一些帮助。我有这个脚本:

#!/usr/bin/python
import time
import os
showname="Offsides"
station="http://myurl.com"
timestr = time.strftime("%B_%d_%Y-%H%M%p_%A")
directory = "/mnt/data/data/radio/current/"
filename = directory + showname +"_" + timestr + ".mp4"
command= "-q -O " + filename + " " + station +" &"
os.system("wget " + command)

#Record for an hour then kill this process based on grep for filename
time.sleep(3600)
pid=os.system("ps -ef | grep wget | grep -vi grep | grep " + filename + " | awk '{print $2}'| head -1")
os.system("kill -9 " + str(pid))

这会录制一个流媒体广播电台一小时,然后杀死该过程。我最近注意到我的一些录音由于电台不可用而失败(404错误)。该程序可在多个URL上使用。我想让这个更强大。

我有一个文件(stations.txt),每行有一个URLS列表。我想要做的是修改我的脚本,以便它尝试列表中的第一个,发送wget命令来检索它,等待一两秒,然后检查文件(来自上面的变量'filename')是否是生长。如果文件没有增长,那么它将尝试下一个URL。这应该有助于错过这些录音。

我是这方面的新手,非常感谢您提供的任何帮助。

由于

1 个答案:

答案 0 :(得分:0)

您可以在打开包含URL的文件后添加for循环语句。 请参考https://docs.python.org/2/library/stdtypes.html#bltin-file-objects了解基本的文件打开结构。

#open file
f = open("your_file")
try:
    for line in f:
        #line contains urls from file
        print line
        station=line
        # continue with what ever you want to do
finally:
    f.close()