下面是“Python批量解压&压缩文件夹的示例代码”的完整攻略:
一、批量解压
1.1 解压单个文件
解压单个文件非常简单,我们可以使用Python内置的zipfile模块来完成。示例代码如下:
import zipfile
zip_file_path = 'example.zip'
output_folder = 'output'
with zipfile.ZipFile(zip_file_path, 'r') as zf:
zf.extractall(output_folder)
其中,zip_file_path为需要解压的zip文件的路径,output_folder为解压后文件存放的目录。
1.2 解压多个文件
如果需要批量解压多个zip文件,我们可以使用os模块的listdir()方法遍历指定目录下的所有zip文件。示例代码如下:
import os
import zipfile
input_folder = 'input'
output_folder = 'output'
zip_files = [f for f in os.listdir(input_folder) if os.path.splitext(f)[-1] == '.zip']
for zip_file in zip_files:
zip_file_path = os.path.join(input_folder, zip_file)
with zipfile.ZipFile(zip_file_path, 'r') as zf:
zf.extractall(os.path.join(output_folder, os.path.splitext(zip_file)[0]))
其中,input_folder为需要批量解压的zip文件所在的目录,output_folder为解压后文件存放的目录。
二、批量压缩
2.1 压缩单个文件夹
压缩单个文件夹同样也是使用Python内置的zipfile模块来完成。示例代码如下:
import zipfile
input_folder = 'example'
output_zip_path = 'example.zip'
with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:
for foldername, subfolders, filenames in os.walk(input_folder):
for filename in filenames:
file_path = os.path.join(foldername, filename)
zf.write(file_path, file_path[len(input_folder)+1:])
其中,input_folder为需要压缩的文件夹的路径,output_zip_path为压缩后的zip文件的路径。
2.2 压缩多个文件夹
如果需要批量压缩多个文件夹,我们仍然可以使用os模块的listdir()方法遍历指定目录下的所有文件夹。示例代码如下:
import os
import zipfile
input_folder = 'input'
output_folder = 'output'
folders = [f for f in os.listdir(input_folder) if os.path.isdir(os.path.join(input_folder, f))]
for folder in folders:
input_folder_path = os.path.join(input_folder, folder)
output_zip_path = os.path.join(output_folder, folder + '.zip')
with zipfile.ZipFile(output_zip_path, 'w', zipfile.ZIP_DEFLATED) as zf:
for foldername, subfolders, filenames in os.walk(input_folder_path):
for filename in filenames:
file_path = os.path.join(foldername, filename)
zf.write(file_path, file_path[len(input_folder_path)+1:])
其中,input_folder为需要批量压缩的文件夹所在的目录,output_folder为压缩后文件存放的目录。
示例说明:
- 示例1:如果需要批量解压文件夹,可以使用listdir()方法配合ZipFile模块完成。其实现方式也可以用于批量解压zip文件,只需要将listdir()方法的参数修改为zip文件所在的目录即可。
- 示例2:如果需要批量压缩文件夹,可以使用listdir()方法来遍历文件夹,然后使用ZipFile模块来进行压缩。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python批量解压&压缩文件夹的示例代码 - Python技术站