相关疑难解决方法(0)

什么原因导致Python分段错误?

我正在用Python实现Kosaraju的强连接组件(SCC)图搜索算法.

该程序在小数据集上运行良好,但是当我在超大图(超过800,000个节点)上运行它时,它会显示"Segmentation Fault".

可能是什么原因造成的?谢谢!


附加信息:首先,我在超大型数据集上运行时出现此错误:

"RuntimeError: maximum recursion depth exceeded in cmp"
Run Code Online (Sandbox Code Playgroud)

然后我使用重置递归限制

sys.setrecursionlimit(50000)
Run Code Online (Sandbox Code Playgroud)

但得到了"分段错误"

相信我,它不是一个无限循环,它在相对较小的数据上运行正确.该计划有可能耗尽资源吗?

python segmentation-fault large-data

70
推荐指数
5
解决办法
12万
查看次数

如何在python中存储(和访问)非常大的列表

我有一个文件,该文件包含超过400万行,我希望逐行读取它们,并对第一个“列”数据执行操作。可能有重复的数据,我想确保只执行一次这些操作,并且能够重新启动程序并从上次中断的地方开始。

我的解决方案是解析该行,将值存储到列表中,然后“如果x不在列表中”执行操作,然后在程序死/停止/被杀死时将该列表存储为泡菜。

但是,脚本运行了几个小时后会出现段错误,我认为这是因为由于在checkedFile列表中存储了大量MD5和,因此我已经烧光了所有RAM。

因为文件太大(超过400万个条目),所以我需要快速查找的东西,希望有一个简单的解决方案。谢谢!

数据如下所示:6e5f6c90e6bf31c31283afb8dca93da8 | mouse.gif | 10102017

我当前的代码如下所示:

checkedFile = []

def readline(inFile):
print("Opening file: %s\n" % inFile)
try:
    with open(inFile, "r") as inputFile:
        for line in inputFile: # read in file line by line
            fileHash, garbage = line.split("|",1) 
            if fileHash not in checkedFile:
                checkedFile.append(fileHash)
                checkit(fileHash) # 
Run Code Online (Sandbox Code Playgroud)

python

5
推荐指数
1
解决办法
2441
查看次数

标签 统计

python ×2

large-data ×1

segmentation-fault ×1