gpt4 book ai didi

python - 如何在解析过程中丢弃 pyparsing parseResults?

转载 作者:太空狗 更新时间:2023-10-30 01:16:35 29 4
gpt4 key购买 nike

是否可以告诉 pyparsing 不存储 ParseResults 或手动丢弃它们?

我正在解析一个大型项目文件,并且可以通过解析操作对每个项目进行所有后处理。因此,一旦一个项目被解析,我就不再需要它的 ParseResult 并且希望能够丢弃它,因为我正在达到我所在机器的内存限制。

最佳答案

您是否使用解析操作在解析 token 时对其进行处理?如果是这样,您可以使用 del 删除已解析 token 的内容:

def parseActionThatDeletesTheParsedTokens(tokens):
# ...
# do something interesting with the tokens
# ...

# delete the contents of the parsed tokens
del tokens[:]

或者您可能只想使用 scanString 而不是 parseString。而不是这个:

OneOrMore(blockOfText).parseString(bigHonkingString)

做:

for tokens, matchstart, matchend in blockOfText.scanString(bigHonkingString):
# do stuff with the tokens

scanString 返回一个生成器,该生成器生成 3 元组,其中包含匹配的标记、每个连续匹配的开始和结束位置。您可以处理每组已解析的标记,然后当您继续处理下一组时,旧的一组将被自动丢弃。我认为这可能是最简单的方法,对您的程序的更改最少。

关于python - 如何在解析过程中丢弃 pyparsing parseResults?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12399201/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com