Python3项目删除__pycache__文件夹和.pyc文件
什么是从python3项目清除所有__pycache__
文件夹和.pyc/.pyo
文件的最佳方法。 我已经看到多个用户build议与Debian捆绑在一起的pyclean
脚本,但是这不会删除文件夹。 我想要一个简单的方法来清理项目,然后将文件推送到我的DVS。
您可以使用下一个命令手动执行此操作:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
这将在当前目录中recursion地删除所有的* .pyc文件和__pycache__目录。
当我错误地使用pyclean作为pycclean时,我自己find了答案:
No command 'pycclean' found, did you mean: Command 'py3clean' from package 'python3-minimal' (main) Command 'pyclean' from package 'python-minimal' (main) pycclean: command not found
运行py3clean .
清理它非常好。
把这个函数放在你的.bashrc
文件中:
pyclean () { find . -regex "\(.*__pycache__.*\|*.py[co]\)" -delete }
然后cd
到你想要recursion清理的目录,然后inputpyclean
。
最重要的答案是:
find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf
这似乎效率较低,因为它使用三个进程。 find
需要一个正则expression式,所以我们不需要单独调用grep
。 同样,它有删除,所以我们不需要一个单独的rm调用 – 这里和注释相反,只要它们通过正则expression式匹配而被清空, 就会删除目录。 从xargs
手册页:
find /tmp -depth -name core -type f -delete
在/ tmp目录下find名为core的文件并删除它们,但是比上一个例子更有效率(因为我们避免了使用fork(2)和exec(2)来启动rm,而且我们不需要额外的xargs过程)。
由于这是一个Python 3项目,你只需要删除__pycache__
目录 – 所有的.pyc
/ .pyo
文件都在里面。
find . -type d -name __pycache__ -exec rm -r {} \+
-delete
没有为我工作(即使在首先删除所有的.pyc
/ .pyo
) – 目录本身不会因为某些原因而被删除。
另外,如果你在一个受版本控制的目录中这样做,你可以告诉RCSrecursion地忽略__pycache__
文件夹。 然后,在需要的时候,只清理所有被忽略的文件。 这可能会更方便,因为可能会有更多的清理比__pycache__
。