2024-09-28 01:26:59 发布
网友
单个文件的大小大于2G。 我打电话给open(f, "rb").read() 记忆错误。 我打电话给open(f, "rb").read(1<<30) 好的
open(f, "rb").read()
open(f, "rb").read(1<<30)
如何消除2G限制?我有足够的记忆力——16克
即使您的文件可能只有2GB,但读取它的开销可能会导致使用的内存远远超过2GB。在
正如@itaypk在评论中所说,32位可执行文件被限制为2GB的可访问ram(2^31)。为了利用额外的RAM,您需要运行64位版本的Python。在
根据您需要对文件执行的操作,您可能不需要完全读取它。您可以逐步完成:
with open('huge_file.txt') as f: for line in f: print line # print one line at a time
上面的循环不会耗尽系统上的所有可用内存。在
使用内存映射文件(^{})怎么样?在documentation on python.org中有一个很好的例子。它改编如下。在
with open(f, "rb") as fi: # memory-map the file, size 0 means whole file mm = mmap.mmap(fi.fileno(), 0) # Do stuff mm.close()
即使您的文件可能只有2GB,但读取它的开销可能会导致使用的内存远远超过2GB。在
正如@itaypk在评论中所说,32位可执行文件被限制为2GB的可访问ram(2^31)。为了利用额外的RAM,您需要运行64位版本的Python。在
根据您需要对文件执行的操作,您可能不需要完全读取它。您可以逐步完成:
上面的循环不会耗尽系统上的所有可用内存。在
使用内存映射文件(^{} )怎么样?在documentation on python.org中有一个很好的例子。它改编如下。在
相关问题 更多 >
编程相关推荐