pywintypes.com_error:(-2147024882,“没有足够的内存资源来完成此操作。”,无,无)

时间:2018-08-06 14:59:57

标签: python-3.x postgresql automation pywin32

当我尝试使用pythons pywin32软件包从pgsql到excel获取约25万行时

我收到以下错误

  

pywintypes.com_error:(-2147024882,“没有足够的内存资源来完成此操作。”,无,无)

1 个答案:

答案 0 :(得分:0)

在装入92,875 X 60的纸张时遇到了相同的问题。在这张纸变得如此大之前,它工作得很好。

我想出了一种解决此问题的方法,这很简单。而不是加载整个数据范围,而是先读取一行,然后再读取另一行。

例如,我的代码原本是这样的:

finalrow = ws.Cells(ws.Rows.Count, "A").End(win32com.client.constants.xlUp).Row
finalcell = '$%s$%s' % (finalcolumn, finalrow)
r = ws.Range('$A$1:' + finalcell).Value
rows = list(r) 

其中finalcolumn是一个常量值,例如'BH'。

更改为:

finalrow = ws.Cells(ws.Rows.Count, "A").End(win32com.client.constants.xlUp).Row
finalcell = '$%s$%s' % (finalcolumn, finalrow)
rows = []
for i in range(finalrow):
    r = ws.Range('$A$%s:$%s$%s' % (i+1, finalcolumn, i+1)).Value
    rows += list(r)

未观察到明显的性能下降。