【问题标题】: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


【解决方案1】:

你可以试试这个。

tar = tarfile.open("FILE_NAME.tar.gz")
tar.extractall()
tar.close()

我正在使用 centos,它的工作。希望这会有所帮助。

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 2011-01-06
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 2016-01-28
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多