目录
1、认识Python
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字或标点符号,它具有比其他语言更有特色的语法结构。
2、环境与工具
2.1 python环境
在Windows上使用命令行窗口查看所安装的python版本
python --version
2.2 Visual Studio Code编译
Visual Studio Code是一款由微软开发且跨平台的免费源代码编辑器。该软件以扩展的方式支持语法高亮、代码自动补全、代码重构功能,并且内置了命令行工具和Git 版本控制系统。
3、文件压缩
3.1 代码构思
使用get_zipinfo()函数获取文件信息,使用zip_file()函数遍历文件,对每个文件和目录进行压缩
3.2 代码示例
import zipfile
import os
# 获取压缩文件信息
def get_zipinfo(zipfile_name):
with zipfile.ZipFile(zipfile_name, 'r') as zfile_obj:
zipfile_info = zfile_obj.infolist()
return zipfile_info
# 压缩文件夹
def zip_file(path):
zipname = os.path.basename(path) + ".zip"
with zipfile.ZipFile(zipname, 'w', zipfile.ZIP_DEFLATED) as zipfile_obj:
print("正在压缩文件...")
# 依次将文件和文件夹进行压缩
for cur_dir, list_dir, list_file in os.walk(path, topdown=False):
for dir_file_name in list_dir:
dir_name = os.path.join(cur_dir, dir_file_name)
print('正在压缩文件夹:', dir_name)
zipfile_obj.write(dir_name, arcname=os.path.relpath(dir_name, path))
for dir_file_name in list_file:
file_name = os.path.join(cur_dir, dir_file_name)
print('正在压缩文件:', file_name)
zipfile_obj.write(file_name, arcname=os.path.relpath(file_name, path))
print(f"压缩完成,生成的压缩文件为: {zipname}")
if __name__ == "__main__":
# 测试目录,可以通过复制计算机中的任意目录或自行创建进行测试
path_name = 'testdir'
zip_file(path_name)
# 分割线
print('-' * 60)
zip_name = 'testdir.zip'
# 调用函数读取压缩文件的信息
zip_info = get_zipinfo(zip_name)
for info in zip_info:
print('文件(目录)名:', info.filename, '压缩前尺寸:', round(info.file_size / 1024, 0), 'k 压缩后尺寸:', round(info.compress_size / 1024, 0), 'k')
print('_' * 60)
3.3 运行结果
4、总结
上述代码直观的展示了.zip格式文件的压缩过程,帮助理解对文件格式的编辑。