Python进程抛出一个内存分配试图写一个文件,但有足够的内存可用的原因是什么?

2024-04-25 23:28:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Python进程,它从数据库中读取文件,然后通过fout将它们写入网络卷:

例如:

fout = open((strOutputPath + strOutputName), 'wb')
for row in tupSQLResults :
    fout.write(row[0])

fout.close()

99%的时候,这是成功的。然而,在某些情况下,我得到了一个可爱的: [Errno 12]无法通过str分配内存(系统exc\U信息()[1])

当出现这种情况时,我已经检查了机器的内存,通常Python进程只使用36mb(类似的虚拟内存)之类的内存,还有3+gbs的可用RAM。它会继续到下一个文件,并一般输出它们的罚款。(这是一个计划任务,每5分钟运行一次,并输出数据库中具有较新时间戳的任何文件。)

有没有想过是什么导致了这个内存分配错误?可能是目标卷有问题吗?如果是这样,是否有更可靠的传输机制(我应该在本地进行,然后使用scp或类似的方法进行复制?)你知道吗

谢谢!你知道吗


Tags: 文件内存in网络数据库for进程情况