我有一段蟒蛇,我正撞在墙上。我不是python开发人员/程序员。但是,我的任务是重做这个应用程序中的一些功能,我无法弄清楚这是在寻找什么。我有一个名为support.sh的bash程序。它与旧版本做同样的事情,但我删除了500行无用的代码。它收集了一堆日志和其他信息,然后我将一些目录rsync同步到/ tmp /“$ bundleName”然后创建一个zip。
要启动该过程,会调用一个python脚本,并调用我的bash脚本。这是检查我的bash的段,但我不知道它是什么意思表示我的bash程序的完成。一旦我知道它想要表示我的bash是完整的,我会在程序结束时添加它来表示它已经完成。
这是查找我的bash状态的python:
def checkSupportBundleGenerationStatus(bundle):
try:
f=open(SUPPORT_BUNDLE_DIR + bundle + '/' + SUPPORT_BUNDLE_LOG,'r')
blog=f.read()
f.close()
except:
sendError("Invalid bundle")
log.message(cgiutil.LOG_INFO, "Log bundle generation output so far %r bytes." % len(blog))
filename=None
lines = blog.splitlines()
for l in lines:
pair = l.split(':', 1)
if len(pair) == 2 and pair[0] == 'File':
filename=pair[1].strip()
break
blog=re.sub(r'\rPreparing Files: [-\\|/]','',blog)
if filename:
dlPath=filename.replace(SUPPORT_BUNDLE_DIR,'',1)
try:
fileSize=os.stat(filename).st_size
except:
sendError('Error accesing bundle zip')
lastSlash=filename.rfind("/")
if lastSlash != -1 :
filename=filename[lastSlash+1:]
dlMessage='''<form action="%s" method="post">
<input type="hidden" name="HTTP_AUTHORIZATION" value="%s"/>
%s (%s) is ready for download. <input type="submit" value="Download">
</form>''' % (
buildGetQuery(downloadbundle=dlPath),
os.environ['HTTP_AUTHORIZATION'],
filename,
convertBytes(fileSize)
)
sendBundlePage(dlMessage,blog)
else:
sendBundlePage(WAIT_MSG,blog,buildGetQuery(checkbundle=bundle), os.environ['HTTP_AUTHORIZATION'])
谢谢!
答案 0 :(得分:2)
循环:
for l in lines:
pair = l.split(':', 1)
if len(pair) == 2 and pair[0] == 'File':
filename=pair[1].strip()
break
查找以File:
开头的第一行。它将filename
设置为该前缀后面的文件名。如果找到这一行,它将在以下代码后执行代码块:
if filename:
如果找不到,则会转到:
else:
sendBundlePage(WAIT_MSG,blog,buildGetQuery(checkbundle=bundle), os.environ['HTTP_AUTHORIZATION'])