清除 Python 项目生成的 __pycache__ 或 pyc 缓存文件


在运行 Python 项目时,如果 Python 版本是 Python 3,会自动生成以 __pycache__ 为名称的缓存文件;如果 Python 版本是 Python 2,会自动生成 *.pyc 的缓存文件。

如果项目文件比较多,有时会感觉很乱,这里给出一个脚本,可以递归删除项目中的 __pycache__ 目录及其子文件,或者 *.pyc 文件。

对于 Python 3 版本:

"""清除 __pycache__ 缓存"""
import os
import shutil


def purge_cache(path):
    # 遍历目录下所有文件
    for file_name in os.listdir(path):
        abs_path = os.path.join(path, file_name)
        if file_name == "__pycache__":
            print(abs_path)
            # 删除 `__pycache__` 目录及其中的所有文件
            shutil.rmtree(abs_path)
        elif os.path.isdir(abs_path):
            # 递归调用
            purge_cache(abs_path)


if __name__ == "__main__":
    # 当前文件的绝对路径列表,按当前系统类型路径分隔符分隔
    path_list = os.path.dirname(
        os.path.abspath(__file__)
    ).split(os.sep)
    # 取当前文件的上上级目录,可根据需要修改
    root_dir = os.sep.join(path_list[0:-2:])
    # 开始清除
    purge_cache(root_dir)

对于 Python 2 版本:

一句 shell 命令即可:

find . -name "*.pyc" -type f -print -exec rm -rf {} \;