使用Python编写一个简单的文件压缩和解压缩程序
文件压缩和解压缩是计算机中常用的操作之一。Python提供了多种库和方法来实现文件压缩和解压缩的功能。其中,最常用的库是gzip和zipfile。
### 文件压缩 - gzip库
gzip库提供了对文件进行压缩的功能。下面是一个使用gzip库实现文件压缩的例子:
import gzip
def compress_file(input_file, output_file):
with open(input_file, 'rb') as file_in:
with gzip.open(output_file, 'wb') as file_out:
file_out.writelines(file_in)
print(f'{input_file} has been compressed to {output_file}')
# 压缩文件
compress_file('input.txt', 'output.txt.gz')
在上述例子中,我们定义了一个名为compress_file的函数,该函数接受两个参数:input_file和output_file,分别表示输入文件和输出文件。函数通过打开输入文件并以二进制(rb)模式打开输出文件,并使用gzip.open方法来创建一个gzip.File对象,然后使用writelines方法将输入文件的内容写入到输出文件。最后,我们打印出压缩成功的消息。
### 文件解压缩 - gzip库
如同文件压缩一样,我们可以使用gzip库来进行文件解压缩。下面是一个使用gzip库实现文件解压缩的例子:
import gzip
def decompress_file(input_file, output_file):
with gzip.open(input_file, 'rb') as file_in:
with open(output_file, 'wb') as file_out:
file_out.write(file_in.read())
print(f'{input_file} has been decompressed to {output_file}')
# 解压缩文件
decompress_file('output.txt.gz', 'input_decompressed.txt')
在上述例子中,我们定义了一个名为decompress_file的函数,该函数接受两个参数:input_file和output_file,分别表示输入文件和输出文件。函数通过以二进制(rb)模式打开输入文件并以二进制(wb)模式打开输出文件,并使用write方法将输入文件的内容写入到输出文件。最后,我们打印出解压缩成功的消息。
### 文件压缩和解压缩 - zipfile库
除了gzip库外,Python还提供了zipfile库用于处理zip文件的压缩和解压缩。下面是一个使用zipfile库实现文件压缩和解压缩的例子:
import zipfile
def compress_files(input_files, output_zip):
with zipfile.ZipFile(output_zip, 'w') as zipf:
for file in input_files:
zipf.write(file)
print(f'{input_files} have been compressed to {output_zip}')
# 压缩文件
compress_files(['input1.txt', 'input2.txt'], 'output.zip')
def decompress_files(input_zip, output_folder):
with zipfile.ZipFile(input_zip, 'r') as zipf:
zipf.extractall(output_folder)
print(f'{input_zip} has been decompressed to {output_folder}')
# 解压缩文件
decompress_files('output.zip', 'output_folder')
在上述例子中,我们定义了两个函数:compress_files用于压缩文件,decompress_files用于解压缩文件。compress_files函数接受两个参数:input_files和output_zip,分别表示输入文件列表和输出zip文件。函数通过zipfile.ZipFile创建一个ZipFile对象,并使用write方法将输入文件写入到zip文件。decompress_files函数接受两个参数:input_zip和output_folder,分别表示输入zip文件和输出文件夹。函数通过zipfile.ZipFile打开输入zip文件,并使用extractall方法将zip文件解压缩到输出文件夹。
以上是使用Python实现文件压缩和解压缩的简单示例。这些示例可以帮助您了解Python中如何使用gzip和zipfile库来进行文件压缩和解压缩的操作。希望对您有所帮助!
