gpt4 book ai didi

python - 如何从 .gz 存档中获取原始文件的名称?

转载 作者:行者123 更新时间:2023-12-02 15:21:47 25 4
gpt4 key购买 nike

我正在编写一个实用程序,它接受一个 .gz 存档并检查它的内容是否已经存在于指定的文件夹中。如果他们不这样做,它将在那里提取存档。

我计划这样做的方法是一个一个地读取 .gz 存档中文件的文件名,并检查我的目录中是否已经存在这样的文件。但据我所知,这对于 gzip 是不可能的。

理想情况下,我正在寻找这样的东西:

archive = gzipfile.GzipFile(source)

for i in archive.getmembers():
if os.path.isfile(destination + sep + i.name) and overwrite:
...

这可能吗?

最佳答案

虽然 .gz 文件确实只是一个压缩文件,但原始文件名可以被截断,或者压缩的 .gz 文件确实可以重命名。可以告诉 gunzip 使用 -N 标志提供原始文件名,如果与 -l (减去小写 L)一起使用,它将在不解压文件的情况下告诉你原始文件名。
例如:

$ gzip sometext.txt
$ mv sometext.txt.gz othertext.gz
$ gunzip -Nl othertext.gz
compressed uncompressed ratio uncompressed_name
58 113 76.1% sometext.txt

您也可以在 python 中破解此方法。

from subprocess import check_output
size_name = check_output(['gunzip', '-Nlq','othertext.gz'])
size_name = size_name.strip().split("%",1)
print "original filename =",size_name[1].strip()

结果:

original filename = sometext.txt

我不相信python gzip包可以让你访问原始文件名。
其他人可能知道不同!

关于python - 如何从 .gz 存档中获取原始文件的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35460333/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com