清除所有__pycache__文件夹和.pyc/。python3项目中的Pyo文件。我见过许多用户建议将pyclean脚本与Debian捆绑在一起,但这并没有删除文件夹。在将文件推送到分布式交换机之前,我想要一个简单的方法来清理项目。


当前回答

有一个不错的pip包。

pip install pyclean
pyclean --verbose .

done

其他回答

先清空目录,然后删除它们:

find ./ -type f -name '*.pyc' -delete -print && find ./ -type d -name '__pycache__' -delete -print

我在Mac上运行Python3和pip3。对我来说,解决方案如下 (在我项目的根目录下):

pip3 install pyclean
pyclean .

我想强调的是,因为我看到许多答案都涉及bash脚本,所以软件中的最佳实践是倾向于使用经过测试的问题解决方案(这正是已建立的python包所代表的),而不是手卷方法。

大多数时候你的项目都在源代码控制之下;如果使用git,可以直接运行git clean -d -f。清理非版本控制文件;如果Python缓存文件/目录在.gitignore中,你还需要-x(也删除被忽略的文件)或-x(只删除被忽略的文件)命令行开关。

请注意,如果你有任何临时文件需要保存,在不带-X的情况下运行git clean之前,将它们移到本地存储库之外或添加到索引树中。

非常感谢其他的答案,基于他们,这是我用于我的Debian包的prerm文件:

#!/bin/sh
set -e

deb_package='package-name'
python_package='package_name'

if which pyclean >/dev/null 2>&1; then
    py3clean -p $deb_package
else
    dpkg -L $deb_package | grep ${python_package}$ | while read file
    do
        find ${file} -type d -name __pycache__ -exec rm -r {} \+
    done
fi

这是我的别名,适用于Python 2和Python 3,递归地删除所有.pyc .pyo文件以及__pycache__目录。

alias pyclean='find . -name "*.py[co]" -o -name __pycache__ -exec rm -rf {} +'