我们在另一个地方有一台AJA Ki Pro录音机,我需要创建一个自动系统,将录制的文件拉到我的编辑工作室。到目前为止,我已成功地使用通过Automator通过Applescript运行的python脚本来提取录音。我可以从iCal触发应用程序。基本上我的脚本涉及将我的记录器上的“MediaState”参数设置为“Data”(值= 1),这样我就可以拉出文件,将记录器上的文件与我的本地文件进行比较(它只下载我本地没有的东西),然后将“MediaState”属性设置回“Rec”(值= 0),以便录音机准备好再次使用。
以下是迄今为止我无法解决的两个问题。忍受我,我有大约2天的Python经验:)似乎我已经以某种方式创建了一个循环,它不断地说“寻找新的剪辑”和“没有找到新的剪辑”。理想情况下,如果没有找到新剪辑,我希望脚本终止。我还想设置它,以便当它通过cURL完成下载时,它会自动将我的“MediaState”设置回值= 0并结束脚本。到目前为止,这是我的代码:
# This script polls the unit downloads any new clips it hasn't already downloaded to the current directory
# Arguments: hostname or IP address of Ki Pro unit
import urllib, sys, string, os, posix, time
def is_download_allowed(address):
f = urllib.urlopen("http://"+address+"/config?action=get¶mid=eParamID_MediaState")
response = f.read()
if (response.find('"value":"1"') > -1):
return True
f = urllib.urlopen("http://"+address+"/config?action=set¶mid=eParamID_MediaState&value=1")
def download_clip(clip):
url = "http://" + address + "/media/" + clip
print url
posix.system("curl --output " + clip + " " + url);
def download_clips(response):
values = response.split(":")
i = 0
for word in values:
i += 1
if(word.find('clipname') > -1):
clip = values[i].split(',')[0].translate(string.maketrans("",""), '[]{} \,\"\" ')
if not os.path.exists(clip):
print "Downloading clip: " + clip
download_clip(clip)
else:
f = urllib.urlopen("http://"+address+"/config?action=set¶mid=eParamID_MediaState&value=0")
print "No new clips found"
address = sys.argv[1]
while 1:
if (is_download_allowed(address)):
print "Looking for new clips"
f = urllib.urlopen("http://"+address+"/clips")
response = f.read()
download_clips(response)
答案 0 :(得分:0)
如果download_clips
函数循环遍历剪辑名称,为什么需要无限while 1
循环?我认为没有必要。只需将其删除即可。