如何使用Python的util模块进行文件压缩与解压缩
Python的util模块中提供了压缩和解压缩文件的功能。可以使用gzip模块和zipfile模块来实现这些功能。
1. 压缩文件(使用gzip模块):
要压缩一个文件,首先需要导入gzip模块,并使用open函数打开文件。然后,使用gzip模块的open函数创建一个压缩文件对象,并使用write函数将文件内容写入压缩文件。最后,关闭文件对象。
以下是使用gzip模块压缩文件的示例代码:
import gzip
def compress_file(input_file, output_file):
with open(input_file, 'rb') as f_in:
with gzip.open(output_file, 'wb') as f_out:
f_out.writelines(f_in)
示例代码中,input_file是要压缩的文件的路径,output_file是压缩后的文件路径。使用with语句可以在压缩完成后自动关闭文件对象。
2. 解压缩文件(使用gzip模块):
要解压缩一个文件,也需要导入gzip模块,并使用gzip模块的open函数打开压缩文件对象。然后,使用read函数读取压缩文件内容,并使用open函数创建一个解压后的文件对象。最后,使用write函数将解压后的内容写入文件,并关闭文件对象。
以下是使用gzip模块解压缩文件的示例代码:
import gzip
def decompress_file(input_file, output_file):
with gzip.open(input_file, 'rb') as f_in:
with open(output_file, 'wb') as f_out:
f_out.write(f_in.read())
示例代码中,input_file是要解压缩的文件的路径,output_file是解压后的文件的路径。
3. 压缩目录(使用zipfile模块):
要压缩一个目录,需要导入zipfile模块,并使用ZipFile类创建一个zip文件对象。然后,使用write函数将目录中的文件依次添加到zip文件中。最后,关闭zip文件对象。
以下是使用zipfile模块压缩目录的示例代码:
import zipfile
def compress_dir(input_dir, output_file):
with zipfile.ZipFile(output_file, 'w') as zip_out:
for root, dirs, files in os.walk(input_dir):
for file in files:
file_path = os.path.join(root, file)
zip_out.write(file_path)
示例代码中,input_dir是要压缩的目录的路径,output_file是压缩后的zip文件的路径。
4. 解压缩文件(使用zipfile模块):
要解压缩一个zip文件,同样需要导入zipfile模块,并使用ZipFile类创建一个zip文件对象。然后,使用extractall函数解压缩所有文件到指定目录中。
以下是使用zipfile模块解压缩文件的示例代码:
import zipfile
def decompress_file(input_file, output_dir):
with zipfile.ZipFile(input_file, 'r') as zip_in:
zip_in.extractall(output_dir)
示例代码中,input_file是要解压缩的zip文件的路径,output_dir是解压后的文件保存的目录。使用extractall函数可以将所有文件都解压缩到指定目录中。
以上是使用Python的util模块进行文件压缩和解压缩的示例代码。这些代码可以根据具体需求进行修改和优化。
