【问题标题】:Python script takes long to executePython脚本需要很长时间才能执行
【发布时间】:2015-12-11 08:32:49
【问题描述】:

我不是 Python 方面的专家。在拆分期间,我的以下脚本需要很长时间才能执行。我需要在下面的代码中更改什么吗?我的猜测是缓慢的行为是由于“for-loop”。目前我使用的是python 2.7.8版

请大家帮忙解决一下

“soapUIResponseFolder”包含格式为“Responses_20121115_TestSuite_1”的文件夹

for subdir in glob.glob(soapUIResponseFolder):
                subdir = os.path.normpath(subdir)
                # This is a case when the os.walk returns a tuple (sequences). So we need to pick only the files path.
                onlyfiles = reduce(lambda x,y : x+y, [map(lambda x: root + "/" + x, files) for root, dirs, files in os.walk(subdir)])
                for file in onlyfiles:
                    i = 0
                    file = os.path.normpath(file) 
                    fileNameWithExt = os.path.basename(file)
                    filename, fileExtension = os.path.splitext(fileNameWithExt)
                    fileExtension = ".xml"
                    # The filename contains several parts with - as delimiter. So lets pick only the relevant ones
                    part1,part2,part3,part4,part5=filename.split("-")
                    filename = part2+"-"+part3 + fileExtension
                    responseFolder = os.path.split(os.path.dirname(file))[1]
                    inputFolder_new = inputFolder+"/"+responseFolder
                    outputFolder_new = outputFolder+"/"+responseFolder

【问题讨论】:

  • 什么是“分裂期间”?
  • 文件夹拆分过程中
  • 您对“很长一段时间”的理解可能与我的不同。请更加 - 完全 - 具体,即需要多长时间,有多少文件夹,每个文件夹中有多少文件?另外,你试过什么?您是否尝试过在 onlyfiles=... 行之后打印一个标记,以便评估需要多长时间?
  • 大约。 100 个文件夹,每个文件夹包含 10 个带有请求和响应 xml 的文件,需要拆分并移动到输入和输出文件夹
  • 您错过了扫描这些文件/文件夹需要多长时间...具体一点。

标签: python python-2.7 python-3.x


【解决方案1】:

文件夹扫描速度

请去掉你的python代码,只找到并打印出相关文件,并将“速度”与find somewhere -type f进行比较。如果您的 Python 代码明显较慢,请考虑使用 scandir(第 3 方)或包含它的 Python 3.5。

使用全局

glob.glob(pattern) 接受类似*.csv 的shell 样式模式,在您的情况下,您可以轻松使用os.listdir()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-03
    • 2011-03-14
    • 2021-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多