gpt4 book ai didi

python - 使用python读取和写入大文件

转载 作者:行者123 更新时间:2023-11-30 22:35:27 25 4
gpt4 key购买 nike

我有一个很大的 .txt 文件,其中包含超过 24,000,000 行。现在我想做一个字数统计,即统计每个单词及其对应的出现次数并将它们记录到一个新文件中。这是我尝试运行的代码:

import gensim
class Corpus(gensim.corpora.TextCorpus):
def count_tokens(self):
word_count = 0
for text in self.get_texts():
word_count += len(text)
return word_count
def get_texts(self):
for filename in self.input:
yield open(filename).read().split()

def main():
corpus = Corpus(['somefile.txt'])
word_count = corpus.count_tokens()
text = open('somefile.txt').read().split()
with open('path_to_output', 'w') as f:
for word, _ in corpus.dictionary.token2id.items():
num_occur = text.count(word)
f.write('%s %d\n' % (word, num_occur))

if __name__ == '__main__':
main()

服务器挂起...我想知道是否有其他足够的方法可以做到这一点或者我可以做出任何改进?如何使用 python 读写非常大的文件?

最佳答案

您的 get_texts() 方法一次读取内存中的整个文件。对于包含大量小文件的语料库来说这很好,但如果你有一个巨大的文件,则需要逐行读取它。

from collections import Counter
wordcounts = Counter()

with open("file.txt") as fp:
for line in fp:
wordcounts.update(line.split())

关于python - 使用python读取和写入大文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44563833/

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