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

Python生成.gz压缩文件时内部文件名与原文件不符如何解决

问题原因

gzip格式的文件头包含可选的原文件名字段,你当前使用的gzip.open()方法默认不会写入该字段,解压工具读取不到原文件名信息,就会默认使用压缩包自身的文件名作为解压后的文件名称。

解决方法

使用gzip.GzipFile类替代gzip.open(),主动指定filename参数,把原文件名写入gzip文件头即可,修改后的代码如下:

import shutil, gzip, os

text_file = 'C:\\Users\\lenovo-miguel\\Downloads\\python\\text_file.txt'
gz_file = text_file + '.GZ'
# 提取原文件的纯文件名,避免把本地绝对路径写入压缩包元数据
original_filename = os.path.basename(text_file)

with open(text_file, 'rb') as f_in:
    with gzip.GzipFile(
        filename=original_filename,
        mode='wb',
        fileobj=open(gz_file, 'wb')
    ) as f_out:
        shutil.copyfileobj(f_in, f_out)

如果你不需要动态适配文件名,也可以直接手动给filename参数赋值为你需要的内部文件名,比如直接写filename='text_file.txt'即可。修改后生成的压缩包解压时,内部文件就会显示为你指定的原文件名。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:45:04