python - 如何从 python 中的 .tar 存档中提取特定文件?
问题描述
我在 Linux 机器上创建了一个 .tar 文件,如下所示:
tar cvf test.tar test_folder/
其中 test_folder 包含一些文件,如下所示:
test_folder
|___ file1.jpg
|___ file2.jpg
|___ ...
我无法使用 Python 以编程方式提取 tar 存档中的各个文件。更具体地说,我尝试了以下方法:
import tarfile
with tarfile.open('test.tar', 'r:') as tar:
img_file = tar.extractfile('test_folder/file1.jpg')
# img_file contains the object: <ExFileObject name='test_folder/test.tar'>
在这里,img_file
似乎不包含请求的图像,而是包含源.tar
文件。我不确定,我在哪里搞砸了。任何建议都会非常有帮助。提前致谢。
解决方案
您可能想使用该.extract()
方法而不是您的.extractfile()
方法(请参阅我的其他答案):
import tarfile
with tarfile.open('test.tar', 'r:') as tar:
tar.extract('test_folder/file1.jpg') # .extract() instead of .extractfile()
笔记:
您提取的文件将位于
test_folder
当前目录下的(可能是新创建的)文件夹中。.extract()
方法返回,None
所以不需要赋值(img_file = tar.extract(...)
)
推荐阅读
- php - Symfony 4 为什么我的“make:migration”命令不起作用?
- mysql - MYSQL按组获取计数百分比
- python - Tkinter 标签小部件显示与其他标签小部件不对齐?
- python - 使用多个连接的箱线图更改 Matplotlib 中的轴刻度
- javascript - Sapper/Svelte - 如何定期获取
- cmake - cmake命令中--j 8是什么意思
- docker - 如何将 Dockerized 多图像 JS 应用程序部署到 Heroku?
- python - 使用 convertapi 在 python 中合并 PDF
- python - 在有条件的熊猫中查找重复项(Python)
- twilio - 有没有办法从 Twilio 传递“Call-Info”SIP INVITE 请求标头?