python - 这个 python 函数在寻找什么?

标签 python linux bash

我有一段 python ,我正在用它的头撞墙。我不是 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'])

谢谢!

最佳答案

循环:

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

关于python - 这个 python 函数在寻找什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24563790/

相关文章:

python - 独立运行python包子模块进行自测试;导入路径困惑

c++ - 如何在 C++ 中找到基础文件类型?

linux - 为什么我在一个终端上得到 "Suspended (tty output)"而在其他终端上却没有?

ruby - 如何在终端提示中显示 RVM 当前的 Ruby 和 gemset?

mysql - 使用 awk 或 sed 将 mysql.log 重新格式化为简单格式

python - 如何从 Python 中的 Alpha Vantage 中提取特定时间段?

python - for循环迭代元组

python - 替换对应于另一个数组的索引数组中的值

linux - 我怎样才能从 dmidecode 获得内存速度?

bash ->>& 在 tcsh 脚本中是什么意思,它如何转换为 bash?