You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Python解压Zip文件的代码修改为处理Tar文件?

修改后的适配Tar文件的代码

import glob
import os
import tarfile

# 匹配当前目录下的tar文件,若需支持压缩格式(如.tar.gz/.tgz)可改为r'./*.tar*'
tarfiles = [os.path.basename(x) for x in glob.glob(r'./*.tar')]

for tarfile_path in tarfiles:
    # 生成目标目录名,替换后缀为tar的情况
    new_dirname = tarfile_path.replace('.bsw.', '_').replace('.tar', '')
    # 处理压缩tar文件的情况(如.tar.gz),可取消下面注释并替换上面的replace
    # new_dirname = tarfile_path.replace('.bsw.', '_').replace('.tar.gz', '').replace('.tgz', '')
    
    try:
        os.mkdir(f'output/{new_dirname}')
    except:
        print(f'output/{new_dirname} already exists')
    try:
        os.mkdir(f'output/{new_dirname}/subdir')
    except:
        print(f'output/{new_dirname}/subdir already exists')

    # 使用tarfile解压,自动识别压缩格式
    with tarfile.open(f'./{tarfile_path}', 'r') as tarObject:
        tarObject.extractall(path=f'output/{new_dirname}/subdir')

关键修改说明

  • 模块替换:去掉zipfile.ZipFile,改用Python标准库的tarfile模块,这是处理tar归档的官方工具。
  • 文件匹配规则:将glob.glob(r'./*.zip')改为glob.glob(r'./*.tar'),如果你的tar文件是压缩格式(如.tar.gz、.tgz),可以改成r'./*.tar*'来匹配所有tar相关文件。
  • 目录名生成:把原代码中替换.zip的逻辑改成替换.tar,如果是压缩tar文件,需要额外处理.tar.gz或.tgz后缀。
  • 解压逻辑:用tarfile.open()替代ZipFile(),模式参数'r'会自动识别tar文件是否压缩(gzip/bzip2等),无需手动指定压缩格式。

内容的提问来源于stack exchange,提问作者INegativeI

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 18:45:13