可以使用tarfile模块来实现从tar.gz压缩文件中删除指定的一个文件。

下面是一个示例代码:

import tarfile

def delete_file(tar_file, file_to_delete):
    # 打开tar.gz文件
    with tarfile.open(tar_file, 'r:gz') as tar:
        # 获取所有文件列表
        file_list = tar.getnames()
        
        # 创建一个新的tar.gz文件
        with tarfile.open(tar_file + '.new', 'w:gz') as new_tar:
            # 遍历所有文件
            for file_name in file_list:
                # 如果文件名不是要删除的文件,则将其添加到新的tar.gz文件中
                if file_name != file_to_delete:
                    # 从原始tar.gz文件中提取文件内容,并将其添加到新的tar.gz文件中
                    file_content = tar.extractfile(file_name)
                    new_tar.addfile(tarfile.TarInfo(name=file_name), fileobj=file_content)
                    
    # 删除原始tar.gz文件
    os.remove(tar_file)
    # 将新的tar.gz文件重命名为原始文件名
    os.rename(tar_file + '.new', tar_file)

# 调用示例
delete_file('path/to/archive.tar.gz', 'file_to_delete.txt')

请将'path/to/archive.tar.gz'替换为实际的tar.gz文件路径,将'file_to_delete.txt'替换为要删除的文件名

请用python实现从targz压缩文件里删除指定的一个文件

原文地址: http://www.cveoy.top/t/topic/hYX7 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录