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__