【问题标题】:how to split huge html to little files如何将巨大的html拆分为小文件
【发布时间】:2019-07-14 01:35:27
【问题描述】:

我正在尝试获取一个巨大的 html 文件并将其拆分为多个部分。该文件由 Jenkins 生成,如下所示:

[XXX] text1
[XXX] text2
[YYY] text4
[XXX] text3
[YYY] text5
[ZZZ] text6
...

我尝试执行以下操作:

my_dict = {}
text, header = re.split('\n\[[A-Za-z]+\]'), re.match('\n\[[A-Za-z]+\]')
for idx, (header, text) in enumerate(zip(header, text)):
    try:
        my_dict[header] += text
    except KeyError:
        my_dict[header] = text
    print idx

但这需要的时间太长(idx 约为 200K)。我能以某种方式更快地做到这一点吗?

【问题讨论】:

  • 预期格式是什么?
  • 有多少不同的标题?如果有很多,你会经常点击except,并且捕获异常很慢。
  • 我希望用 {'XXX' : text1 text2 text3, 'YYY' text4 text5} 实现一个dict,然后写入不同的文件
  • @TigerhawkT3 大约有 10 个标题顶部和每个标题上大约 40K 项,所以我使用 try 而不是 if
  • 您能否逐行遍历文件并使用简单的str.partitionstr.split 将每行的标题与文本分开,避免re.split?此外,您正在打印每个idx,并且打印实际上非常慢。

标签: python regex string python-2.7


【解决方案1】:

好的,解决了...我将循环分成 10K 步,这让它在竞争中运行得非常快。我猜我只是占用了太多内存

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-07-22
    • 2012-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多