这个问题与这个问题相反。
有没有一种方法可以告诉Python“在我命令你关闭或刷新文件之前,请不要写入磁盘”?我正在向网络上的文件写入内容,宁愿一次性写入整个文件。
同时,我正在使用StringIO缓冲区进行写入,最后再将其写入磁盘。
不,从Python手册上看,并没有选项可以将缓冲区大小设置为无限大。
你当前的解决方案基本上是相同的概念。
你可以使用Alex的想法,但我会因以下原因而反对:
It doesn't seem to work:
a = open("blah.txt", "w", 2 ** 31 - 1)
for i in xrange(10000):
a.write("a")
在不关闭Python的情况下打开文件,您将看到文本内容。
您可以使用任意大小的缓冲区打开文件。例如,要使用最多十亿字节进行缓冲,请使用x=open('/tmp/za', 'w', 1000*1000*1000)
-- 如果您有一百亿字节的内存并想要全部使用,只需再添加一个*100...;-)。内存只会在实际需要的量上被消耗,因此不必担心...
我想说这在一定程度上取决于你想做什么。
我遇到这个问题的情况是当我的应用程序创建一个被另一个应用程序使用的文件时有点慢,另一个应用程序会得到不完整的文件版本。
我通过将文件写入不同的位置,然后在完成写入后将其重命名为正确的位置来解决这个问题。
如果您出于其他原因需要这样做,那么可能没有帮助。