是否有人有仅使用Python代码将tar.gz文件转换为zip的代码?正如如何使用带有gzip压缩选项的熊猫read_csv如何读取tar.gz文件中所述,我一直遇到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()
,或者甚至首先使用来获取每个tar文件成员的信息tarf.getmembers()
,然后打开tar.gz
文件以将其传输到zip
,因为之后您将无法执行此操作tarf.getmembers()
(无法向后搜索)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句