gpt4 book ai didi

python - 如何仅使用 Python 将 tar.gz 文件转换为 zip?

转载 作者:行者123 更新时间:2023-11-30 22:50:36 49 4
gpt4 key购买 nike

有人有仅使用 Python 代码将 tar.gz 文件转换为 zip 的代码吗?正如 How can I read tar.gz file using pandas read_csv with gzip compression option? 中提到的,我一直面临着 tar.gz 的许多问题。

最佳答案

您必须使用tarfile模块,使用模式 'r|gz' 进行读取。然后使用zipfile用于写作。

import tarfile, zipfile
tarf = tarfile.open( name='mytar.tar.gz', mode='r|gz' )
zipf = zipfile.ZipFile( file='myzip.zip', mode='a', compression=zipfile.ZIP_DEFLATED )
for m in tarf:
f = tarf.extractfile( m )
fl = f.read()
fn = m.name
zipf.writestr( fn, fl )
tarf.close()
zipf.close()

您可以使用 is_tarfile() 检查有效的 tar 文件。

也许您也可以使用shutil ,但我认为它不能对内存起作用。

PS:根据我执行的简短测试,您可能会对作为目录的成员 m 遇到问题。如果是这样,您可能必须使用 is_dir(),或者甚至首先使用 tarf.getmembers() 获取每个 tar 文件成员的信息,然后打开 >tar.gz 文件用于传输到 zip,因为您无法在 tarf.getmembers() 之后执行此操作(您无法向后查找)。

关于python - 如何仅使用 Python 将 tar.gz 文件转换为 zip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39265680/

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