如何解决使用 Python mkdtemp() 解压缩到临时内存中目录?
我已经查看了那里的示例,但似乎没有找到适合的示例。
希望使用 Python mkdtemp()
将内存中的文件解压缩到临时目录。
这样的东西感觉很直观,但我找不到正确的语法:
import zipfile
import tempfile
zf = zipfile.Zipfile('incoming.zip')
with tempfile.mkdtemp() as tempdir:
zf.extractall(tempdir)
# do stuff on extracted files
但这会导致:
AttributeError Traceback (most recent call last)
<ipython-input-5-af39c866a2ba> in <module>
1 zip_file = zipfile.ZipFile('incoming.zip')
2
----> 3 with tempfile.mkdtemp() as tempdir:
4 zip_file.extractall(tempdir)
AttributeError: __enter__
解决方法
我已经在评论中提到了为什么您编写的代码不起作用。 .mkdtemp()
仅以字符串形式返回路径,但您真正想要的是上下文管理器。
您可以使用正确的函数 .TemporaryDirectory()
该函数使用与 mkdtemp() 相同的规则安全地创建一个临时目录。生成的对象可用作上下文管理器(参见示例)。完成上下文或临时目录对象的销毁后,新创建的临时目录及其所有内容将从文件系统中删除。
zf = zipfile.ZipFile('incoming.zip')
with tempfile.TemporaryDirectory() as tempdir:
zf.extractall(tempdir)
这个就行了
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。