python代码压缩

python代码压缩

使用 python-minifier 库压缩 python 文件大小,同时混淆代码。安装库:pip install python-minifier,对于单个文件或整个项目都可以直接使用命令压缩。

使用 python-minifier 压缩 pydantic 的模型时会有问题,暂时过滤掉对应文件,因此写了一个脚本来压缩整个项目到另一个目录。

import os
import shutil

import python_minifier


def minify_python_files(source_dir: str, target_dir: str):
    for root, _, files in os.walk(source_dir):
        if '__pycache__' not in root:
            # 过滤 pyc 文件
            for file in files:
                source_file_path = os.path.join(root, file)
                target_root = root.replace(source_dir, target_dir, 1)
                if not os.path.exists(target_root):
                    os.makedirs(target_root)
                target_file_path = os.path.join(target_root, file)
                if file.endswith('.py') and file not in ['schemas.py',]:
                    print(file)
                    with open(source_file_path, 'r') as rf:
                        res = python_minifier.minify(rf.read())
                    with open(target_file_path, 'w') as wf:
                        wf.write(res)
                else:
                    shutil.copy(source_file_path, target_file_path)


minify_python_files('./project', './mini_project')

posted @ 2023-11-19 20:25  守望人间  阅读(258)  评论(0)    收藏  举报