gpt4 book ai didi

python - 如何用大数据集在python中查找和替换字符串

转载 作者:太空宇宙 更新时间:2023-11-03 14:36:05 25 4
gpt4 key购买 nike

我正在尝试更改大约 4GB 的大文件的分隔符。分隔符当前是“#|#”,我希望分隔符是“|”。

我尝试进行替换和查找,但由于文件很大,我的计算机没有足够的内存来完成代码。我想知道是否有一种方法可以逐行读取文件而不是节省内存。

text = open("C:\\test.txt", "r")
text = ''.join([i for i in text]).replace("#|#", "|")
x = open("C:\\test.txt","w")
x.writelines(text)
x.close()

这是文件当前的样子:

场#|#场#|#场#|#

我希望它看起来像

领域 |领域|领域|

最佳答案

当然你可以逐行写。事实上,一般来说,文件处理以更惯用的方式使用文件对象作为上下文管理器和行迭代器更实用:

import shutil

with open("C:\\test.txt", "r") as long_file, \
open("C:\\test_replaced.tmp", "w") as replacement:
for line in long_file:
replacement.write(line.replace("#|#", "|"))

shutil.move("C:\\test_replaced.tmp", "C:\\test.txt")

只要您可以将临时文件写入磁盘而不会引起麻烦,这就可以工作。我没有使用标准库对文件进行就地更改的良好、简洁的解决方案,但这应该已经比迭代同一文件两次并将整个内容读入内存更快、内存效率更高。

关于python - 如何用大数据集在python中查找和替换字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58348552/

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