python运行内存不足_Python内存不足(使用后缀树)

我遇到了一些代码问题。请记住,我是一个糟糕的程序员,所以我的解决方案可能不是很有说服力(很可能是我内存不足的原因-我有4G字节,而脚本会慢慢填充它)。在

问题就在这里。我在一个目录里有大约3500个文件。每个文件由一行组成,其中可能包含相对较少或很多字符,没有空格(最小的文件为200字节,最大的为1.3兆字节)。我要做的是在这两个文件之间找到一个公共的子串,每次两个文件的长度是固定的(在下面的代码中是13个字符)。我一次做两个,因为我不是在所有的子串中寻找一个公共的子串,而是两个的组合,直到所有的文件都被比较过。一、 例如,文件之间任何一个固定长度的公共子字符串,而不是所有文件的公共子字符串。在

我使用一个后缀树模块来包装C实现(over here)。首先我列出目录中的所有文件,然后查找两个文件的组合,以便覆盖所有的组合,我一次将两个文件传递到后缀树,然后查找常见子字符串的序列。在

然而,我真的不知道为什么它慢慢地耗尽了记忆。我希望我们可以对代码做一个修改,这样它就可以以某种方式清除未使用的内存?显然3500个文件需要很长的时间来处理,但我希望这是可能的,不需要递增地填充4GB的内存。任何帮助将不胜感激!以下是我目前掌握的代码:from suffix_tree import GeneralisedSuffixTree

from itertools import combinations

import glob, hashlib, os

alist = open('tmp.adjlist', 'w')

def read_f(f):

f = open(f, "r")

<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值