Python 的“tarfile”模块是否将其构建的档案存储在内存中?
我在内存受限的环境中工作,需要对 SQL 转储进行存档。如果我使用 python 内置的 tarfile
模块 是 '. tar' 文件保存在内存中还是在创建时写入磁盘?
例如,在下面的代码中,如果huge_file.sql
是2GB,那么tar
变量会占用2GB内存吗?
import tarfile
tar = tarfile.open("my_archive.tar.gz")), "w|gz")
tar.add('huge_file.sql')
tar.close()
I'm working in a memory constrained environment where I need to make archives of SQL dumps. If I use python's built in tarfile
module is the '.tar' file held in memory or written to disk as it's created?
For instance, in the following code, if huge_file.sql
is 2GB will the tar
variable take up 2GB in memory?
import tarfile
tar = tarfile.open("my_archive.tar.gz")), "w|gz")
tar.add('huge_file.sql')
tar.close()
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,它没有将其加载到内存中。您可以阅读 tarfile 源 来查看它使用 < code>copyfileobj,它使用固定大小的缓冲区从文件复制到 tarball:
No it is not loading it in memory. You can read the source for tarfile to see that it's using
copyfileobj
, which is using a fixed size buffer to copy from the file to the tarball: