我重命名了一个相当大的项目中的一些文件,并想删除他们留下的.pyc文件。我尝试了bash脚本:
rm -r *.pyc
但它并没有像我想的那样递归遍历文件夹。我做错了什么?
我重命名了一个相当大的项目中的一些文件,并想删除他们留下的.pyc文件。我尝试了bash脚本:
rm -r *.pyc
但它并没有像我想的那样递归遍历文件夹。我做错了什么?
当前回答
我曾经用过一个别名
$ which pycclean
pycclean is aliased to `find . -name "*.pyc" | xargs -I {} rm -v "{}"'
其他回答
Rm -r递归到目录中,但只有你给Rm的目录。它还会删除这些目录。一个解决方案是:
for i in $( find . -name *.pyc )
do
rm $i
done
Find会找到所有*。Pyc文件递归到当前目录中,for循环将遍历找到的文件列表,删除每个文件。
Django扩展
注意:这个答案非常特定于已经使用了Django Extension的Django项目。
python manage.py clean_pyc
实现可以在源代码中查看。
现在在PyPI上有一个包pyclean,它很容易使用,而且是跨平台的。用户只需要一个简单的命令行来清理当前目录下的所有__pycache__文件:
pyclean .
我曾经用过一个别名
$ which pycclean
pycclean is aliased to `find . -name "*.pyc" | xargs -I {} rm -v "{}"'
如果你不再需要.pyc,你可以在终端中使用这一行:
export PYTHONDONTWRITEBYTECODE=1
如果你改变主意:
unset PYTHONDONTWRITEBYTECODE