在重新发明轮子之前,Python中是否存在一个模块,它提供了一个简单的类,类似于根据需要将自身缓冲到文件的列表?
特别是,我想做这样的事情:
b = BufferedList(limit = 10000, tmp = '/tmp')
b.append(some_tuple)
b.append(some_tuple)
b.append(some_tuple)
# ad nauseam
这将创建一个名为b的缓冲列表。如果b的内存消耗超过10000K字节,则进一步追加将写入临时文件。
简单的迭代就是我真正需要的。 pop,del,sort等功能很不错,但不是强制性的。该列表主要包含字符串元组。
我使用的是2.7。
这将在Windows Server 2003上实现。
编辑:正如Davidmh在评论中倾斜地指出的那样,我真的是为了满足我的需求而向后退。
由于我不需要pop,del,sort和其他列表操作方法,今天我需要的最干净的解决方案就是在调用open()时为缓冲区设置一个适当大的值,如果我认为总是写入文件它可能是需要的。
我将只为我的SQL任务添加一个标志。它可能会以这样的结果:
imp = SqlImportTask()
imp.src_cs = std_config.DB04_CS
imp.dst_cs = std_config.SQL07_CS
imp.sql = 'SELECT * FROM PurchaseOrderDetail'
imp.dst_table = 'dbo.PurchaseOrderDetail'
imp.use_tmp_file = True