Python 3.11:如何将.gz文件解压到当前目录并获取未压缩文件?
解决.gz文件解压后仍为压缩状态的问题
问题出在你用gzip.open()打开输出文件,这会把从.gz文件中读取到的未压缩数据再次压缩写入,最终生成的.log文件自然还是压缩格式。
正确的做法是用普通文件打开方式(open())来写入输出文件,这样就能得到未压缩的日志文件:
import shutil import gzip file_name = 'name.log.gz' with gzip.open(file_name, 'rb') as f_in: # 用普通open打开输出文件,而非gzip.open with open(file_name[:-3], 'wb') as f_out: shutil.copyfileobj(f_in, f_out)
另外,也可以用更简洁的方式,直接调用shutil.unpack_archive(),这个方法会自动识别并处理压缩格式:
import shutil file_name = 'name.log.gz' shutil.unpack_archive(file_name, extract_dir='.')
内容的提问来源于stack exchange,提问作者Vincent Hilario
相关产品推荐
相关产品推荐

