目录
压缩文件生成GZ文件
通过程序实现GZ文件压缩
GZ文件解压缩
总结
Python提供了gzip、zipfile、tarfile等模块用于文件的压缩和解压缩操作。本文将介绍如何使用gzip模块实现GZ文件的压缩和解压缩操作。
压缩文件生成GZ文件
下载gzip.exe打包工具
将gzip.exe与要打包的文件置于同一目录下,打开cmd命令行
输入命令
F:\>gzip 4b29d5f6efa8eb1ae98277be1fb30b90_1458119725.0.xml
也可将工具gzip.exe置于系统盘下的Windows目录下
打开命令行 将目录切换到要打包的文件所在目录下
还是输入以下命令即可将指定文件进行压缩
F:\>gzip 4b29d5f6efa8eb1ae98277be1fb30b90_1458119725.0.xml
在代码中实现:
sc_cmd = "%s %s"%(gzip_file,target_file)
gz_pipe = os.popen(sc_cmd)
gz_pipe.close()
通过程序实现GZ文件压缩
使用gzip模块的GzipFile类可以实现GZ文件的压缩操作。GzipFile类的构造函数需要传入两个参数,第一个参数是压缩后的文件名,第二个参数是打开模式('wb'表示以二进制写入模式打开文件)。
下面是一个简单的例子,将一个300多MB的文件压缩成GZ文件:
import gzip
source_file = "D:\steverocket\CentOS7.zip"
target_file = "D:\steverocket\CentOS7.gz"
with open(source_file, 'rb') as f_in:
with gzip.open(target_file, 'wb') as f_out:
f_out.write(f_in.read())
上面的代码中,首先使用open()函数打开一个文本文件source_file,以二进制读取模式打开。然后使用gzip.open()函数创建一个GzipFile对象,以二进制写入模式打开,压缩后的文件名为target_file。最后,使用f_out.write()方法将读取到的数据写入压缩文件中。程序执行完后打开文件,文件未压缩坏。
GZ文件解压缩
使用gzip模块的GzipFile类也可以实现GZ文件的解压缩操作。GzipFile类的构造函数需要传入两个参数,第一个参数是要解压的文件名,第二个参数是打开模式('rb'表示以二进制读取模式打开文件)。
下面是一个简单的例子,将一个GZ文件解压缩:
import gzip
TARGET_FILE = "D:\steverocket\CentOS7.gz"
TARGET_FILE_BACK = "D:\steverocket\CentOS7_back.zip"
def decompression_gzfile():
with gzip.open(TARGET_FILE, 'rb') as f_in:
with open(TARGET_FILE_BACK, 'wb') as f_out:
f_out.write(f_in.read())
上面的代码中,首先使用gzip.open()函数打开一个GZ文件TARGET_FILE,以二进制读取模式打开。然后使用open()函数创建一个文本文件TARGET_FILE_BACK,以二进制写入模式打开。最后,使用f_out.write()方法将读取到的数据写入文本文件中。程序执行完后打开文件,文件未压缩坏。
总结
本文介绍了如何使用gzip模块实现GZ文件的压缩和解压缩操作。在压缩时,使用GzipFile类创建一个压缩文件,并使用write()方法将数据写入压缩文件中;在解压缩时,使用GzipFile类打开一个压缩文件,并使用read()方法读取数据,然后将数据写入解压缩后的文件中。