我重命名了一个相当大的项目中的一些文件,并想删除他们留下的.pyc文件。我尝试了bash脚本:
rm -r *.pyc
但它并没有像我想的那样递归遍历文件夹。我做错了什么?
我重命名了一个相当大的项目中的一些文件,并想删除他们留下的.pyc文件。我尝试了bash脚本:
rm -r *.pyc
但它并没有像我想的那样递归遍历文件夹。我做错了什么?
当前回答
如果你使用bash >=4.0(或zsh)
rm **/*.pyc
注意*/*。Pyc选择直接的一级子目录下的所有. Pyc文件。Pyc递归地扫描整个目录树。以foo/bar/qux为例。Pyc将被rm **/*删除。Pyc而不是*/*. Pyc。
必须启用globstar shell选项。启用globstar:
shopt -s globstar
并检查其状态:
shopt globstar
其他回答
现在在PyPI上有一个包pyclean,它很容易使用,而且是跨平台的。用户只需要一个简单的命令行来清理当前目录下的所有__pycache__文件:
pyclean .
全递归
ll **/**/*.pyc
rm **/**/*.pyc
find . -name "*.pyc"|xargs rm -rf
如果您想删除项目文件夹中的所有.pyc文件。
首先,你有
cd <path/to/the/folder>
然后找到所有的.pyc文件并删除。
find . -name \*.pyc -delete
如果你想删除所有*。Pyc文件和__pycache__目录递归在当前目录:
python:
import os
os.popen('find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf')
或手动使用终端或cmd:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf