我浏览了那里的例子,似乎没有找到合适的。
想要使用 Python 将内存中的文件解压缩到临时目录mkdtemp()。
像这样的东西感觉很直观,但我找不到正确的语法:
import zipfile
import tempfile
zf = zipfile.Zipfile('incoming.zip')
with tempfile.mkdtemp() as tempdir:
zf.extractall(tempdir)
# do stuff on extracted files
Run Code Online (Sandbox Code Playgroud)
但这会导致:
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__
Run Code Online (Sandbox Code Playgroud)
Man*_*ius 10
我已经在评论中提到了为什么您编写的代码不起作用。.mkdtemp()仅返回字符串形式的路径,但您真正想要的是上下文管理器。
您可以使用正确的函数轻松解决该问题.TemporaryDirectory()
此函数使用与 mkdtemp() 相同的规则安全地创建临时目录。生成的对象可以用作上下文管理器(请参阅示例)。完成上下文或销毁临时目录对象后,新创建的临时目录及其所有内容将从文件系统中删除。
zf = zipfile.ZipFile('incoming.zip')
with tempfile.TemporaryDirectory() as tempdir:
zf.extractall(tempdir)
Run Code Online (Sandbox Code Playgroud)
仅此一项就可以了
| 归档时间: |
|
| 查看次数: |
5441 次 |
| 最近记录: |