gpt4 book ai didi

python - 在 Python 中读取大文本文件

转载 作者:太空宇宙 更新时间:2023-11-04 02:13:52 24 4
gpt4 key购买 nike

我想从 Python 文本文件(大约 10 亿行)中获取每一行,然后从每一行中提取一些单词并插入到另一个文件中我用过

with open('') as f:
for line in f:
process_line(line)

这个过程很耗时,我如何处理才能在大约 2 小时内阅读所有内容?

最佳答案

脚本性能的瓶颈可能来自于它同时写入 3 个文件,导致文件之间产生大量碎片,从而产生大量开销。

因此,与其在读取行的同时写入 3 个文件,不如在将 300 万个单词写入输出文件之前缓冲 100 万行(应该占用不到 1GB 的内存)一次一个文件,这样它会产生更少的文件碎片:

def write_words(words, *files):
for i, file in enumerate(files):
for word in words:
file.write(word[i] + '\n')

words = []
with open('input.txt', 'r') as f, open('words1.txt', 'w') as out1, open('words2.txt', 'w') as out2, open('words3.txt', 'w') as out3:
for count, line in enumerate(f, 1):
words.append(line.rstrip().split(','))
if count % 1000000 == 0:
write_words(words, out1, out2, out3)
words = []
write_words(words, out1, out2, out3)

关于python - 在 Python 中读取大文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53087865/

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