这个python函数在寻找什么?

时间:2014-07-03 21:48:57

标签: python linux bash

我有一段蟒蛇,我正撞在墙上。我不是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'])

谢谢!

1 个答案:

答案 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'])