我有一个如下形式的文本文件:
('1', '2')
('3', '4')
.
.
.
我正试图让它看起来像这样:
1 2
3 4
etc...
我一直在尝试使用 python 中的 re 模块来执行此操作,方法是将 re.sub 命令链接在一起,如下所示:
for line in file:
s = re.sub(r"\(", "", line)
s1 = re.sub(r",", "", s)
s2 = re.sub(r"'", "", s1)
s3 = re.sub(r"\)", "", s2)
output.write(s3)
output.close()
在我接近输出文件末尾之前,它似乎工作得很好;然后它变得不一致并停止工作。我认为这是因为我正在处理的文件的大小; 300MB 或大约 1200 万行。
谁能帮我确认我只是内存不足?或者如果它是别的东西?合适的替代方案或解决方法?
最佳答案
您可以使用更简单的正则表达式来简化您的代码,该正则表达式可以找到您输入中的所有数字:
import re
with open(file_name) as input,open(output_name,'w') as output:
for line in input:
output.write(' '.join(re.findall('\d+', line))
output.write('\n')
关于python - 内存限制在大量文本文件上使用正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32721235/