【问题标题】:open .tar.gz archives in python在 python 中打开 .tar.gz 档案
【发布时间】:2023-04-02 16:39:01
【问题描述】:

,我对这对用 Python 编码的行有疑问:

#File name spacchetta_N_zip.py

import tarfile
import gzip
    with tarfile.TarFile.open(i, 'r:gz') as tarredgzippedFile:
                        tarredgzippedFile.extractall(cartella)

我确定我正在打开一个 .tar.gz 存档。

我真的不知道出了什么问题,我已经在网上冲浪了,这会奏效......但我收到了这个错误:

File "spacchetta_N_zip.py", line 70, in Spacchetta
    with tarfile.TarFile.open(i, 'r:gz') as tarredgzippedFile:
  File "/usr/lib/python2.7/tarfile.py", line 1678, in open
    return func(name, filemode, fileobj, **kwargs)
  File "/usr/lib/python2.7/tarfile.py", line 1729, in gzopen
    raise ReadError("not a gzip file")
tarfile.ReadError: not a gzip file

请帮帮我

【问题讨论】:

  • 我确定我正在打开一个 .tar.gz 存档。 - 我很确定你不是。如果打印i 的值,它会说什么?如果你在命令行上执行file foo.tar.gz,那说明了什么?
  • print i 打印我 "namefile.tar.gz" 和 file namefile.tar.gz 打印我 "gzippedFile.tar.gz: POSIX tar 存档 (GNU)"
  • 所以它不是一个tar.gz 文件...否则它会打印gzippedFile.tar.gz: gzip compressed data 你的文件是一个tar 存档,而不是一个压缩的tar 存档。
  • 提示:当您打开tar.gz 进行阅读时,您不必指定'r:gz',因为r 是默认值,并且会自动检测压缩档案。

  • 谢谢你们......我不知道我是如何创建那个 .tar.gz 的,但我重新创建了另一个,现在 它可以工作 很好......我不敢相信,因为旧文件在图标上得到了 .tar.gz 公司(我在 Ubuntu 上)。谢谢大家

标签:
python
gzip
tarfile