在Python中如何gzip压缩和解压缩文件
发布时间:2023-12-11 06:46:46
在Python中,可以使用gzip模块来进行文件的gzip压缩和解压缩操作。gzip模块提供了一个GzipFile类,用于处理gzip文件。
下面是gzip压缩文件的示例代码:
import gzip
# 压缩文件
def compress(file_path):
with open(file_path, 'rb') as f_in:
with gzip.open(file_path + '.gz', 'wb') as f_out:
f_out.writelines(f_in)
print('文件压缩成功!')
# 调用压缩函数
compress('example.txt')
在上面的代码中,compress函数将example.txt文件进行gzip压缩,并将压缩后的文件保存为example.txt.gz。
下面是gzip解压缩文件的示例代码:
import gzip
# 解压文件
def decompress(file_path):
with gzip.open(file_path, 'rb') as f_in:
with open(file_path[:-3], 'wb') as f_out:
f_out.writelines(f_in)
print('文件解压缩成功!')
# 调用解压函数
decompress('example.txt.gz')
在上面的代码中,decompress函数将example.txt.gz文件进行gzip解压缩,并将解压后的文件保存为example.txt。
需要注意的是,gzip模块中的open函数可以直接打开gzip文件进行读写操作。对于压缩文件,只需要将打开模式设置为'wb'(写入二进制),写入数据时会自动进行gzip压缩。对于解压缩文件,只需要将打开模式设置为'rb'(读取二进制),读取数据时会自动进行gzip解压缩。
另外,gzip模块还提供了一些其他的函数和方法,如gzip.compress()可以直接将数据压缩为gzip格式,gzip.decompress()可以将gzip格式的数据解压缩为原始数据。在具体使用时可以根据需求选择适合的方法。
此外,还可以使用shutil模块中的gzip.open()函数来进行gzip压缩和解压缩操作。
下面是使用shutil模块进行gzip压缩和解压缩的示例代码:
import shutil
# 压缩文件
def compress(file_path):
with open(file_path, 'rb') as f_in:
with gzip.open(file_path + '.gz', 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
print('文件压缩成功!')
# 解压文件
def decompress(file_path):
with gzip.open(file_path, 'rb') as f_in:
with open(file_path[:-3], 'wb') as f_out:
shutil.copyfileobj(f_in, f_out)
print('文件解压缩成功!')
# 调用压缩函数
compress('example.txt')
# 调用解压函数
decompress('example.txt.gz')
使用shutil模块进行gzip压缩和解压缩与使用gzip模块的GzipFile类的方式类似,只是在复制文件对象时使用了shutil模块中的copyfileobj函数。
