gpt4 book ai didi

python - 在 Python 中替换大型文本文件中的多个字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:30:17 25 4
gpt4 key购买 nike

问题:

替换大型文本文件中的多个字符串模式需要花费大量时间。 ( python )

场景:

我有一个没有特定结构的大文本文件。但是,它包含几种模式。例如,电子邮件地址和电话号码。

文本文件有 100 多种不同的此类模式,文件大小为 10mb(大小可能会增加)。文本文件可能包含也可能不包含所有 100 个模式。

目前,我正在使用 re.sub() 替换匹配项,执行替换的方法如下所示。

readfile = gzip.open(path, 'r') # read the zipped file
lines = readfile.readlines() # load the lines

for line in lines:
if len(line.strip()) != 0: # strip the empty lines
linestr += line

for pattern in patterns: # patterns contains all regex and respective replaces
regex = pattern[0]
replace = pattern[1]
compiled_regex = compile_regex(regex)
linestr = re.sub(compiled_regex, replace, linestr)

对于大文件,这种方法会花费大量时间。有没有更好的优化方法?

我正在考虑用 .join() 替换 += 但不确定这会有多大帮助。

最佳答案

你可以使用 lineprofiler查找代码中的哪些行花费的时间最多

pip install line_profiler    
kernprof -l run.py

另一件事,我认为您构建的字符串在内存中太大,也许您可​​以使用 generators

关于python - 在 Python 中替换大型文本文件中的多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41192945/

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