当前位置: 首页 > 知识库问答 >
问题:

Python3项目删除_upycache__;文件夹和。pyc文件

巫马刚洁
2023-03-14

清除所有文件夹和的最佳方法是什么。pyc/。pyo来自python3项目的文件。我看到多个用户建议使用与Debian捆绑在一起的pyclean脚本,但这不会删除文件夹。我想用一种简单的方法来清理项目,然后再将文件推送到我的DVS。


共有3个答案

马魁
2023-03-14

我自己找到了答案,当我错把pycline当成pycclee时:

    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

运行py3net.非常好地清理了它。

元阳荣
2023-03-14

BSD在macOS上的find实现与GNU find不同-这与BSD和GNU find都兼容。从一个globbing实现开始,使用-name-ofor or-将此函数放入中。bashrc文件:

pyclean () {
    find . -type f -name '*.py[co]' -delete -o -type d -name __pycache__ -delete
}

然后cd到要递归清理的目录,然后键入pyclean

这是一个GNU find,only(即Linux)解决方案,但我觉得使用regex更好一些:

pyclean () {
    find . -regex '^.*\(__pycache__\|\.py[co]\)$' -delete
}

在Windows上,你可能甚至没有search。然而,你可能有Python 3,它从3.4开始有方便的athlib模块:

python3 -Bc "import pathlib; [p.unlink() for p in pathlib.Path('.').rglob('*.py[co]')]"
python3 -Bc "import pathlib; [p.rmdir() for p in pathlib.Path('.').rglob('__pycache__')]"

-B标志告诉Python不要编写。pyc文件。(另请参见pythondotwritebytecode环境变量。)

上面列出了对循环的理解,但在使用python-c时,样式是次要的考虑因素。或者,我们可以滥用(例如)\uuuuuuuuuuuuuuuuuuu导入

python3 -Bc "for p in __import__('pathlib').Path('.').rglob('*.py[co]'): p.unlink()"
python3 -Bc "for p in __import__('pathlib').Path('.').rglob('__pycache__'): p.rmdir()"

最重要的答案是:

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

这似乎效率较低,因为它使用三个过程find采用正则表达式,因此我们不需要单独调用grep。类似地,它有-delete,因此我们不需要单独调用rm,与这里的注释相反,只要通过正则表达式匹配将非空目录清空,它就会删除非空目录。

xargs手册页:

find /tmp -depth -name core -type f -delete

在 /tmp目录中或目录下找到名为core的文件并删除它们,但比上一个例子更有效(因为我们不需要使用fork(2)和exec(2)来启动rm,也不需要额外的xargs进程)。

皇甫鸿远
2023-03-14

您可以使用下一个命令手动执行此操作:

find . | grep -E "(__pycache__|\.pyc|\.pyo$)" | xargs rm -rf

这将递归删除当前目录中的所有*. pyc文件和__pycache__目录。

 类似资料:
  • 我有一个名为images的文件夹,位于用户的文件夹中,如: 图像 用户1 当我从数据库中删除一个用户时,我还想删除该用户的所有文件和文件夹。所有这些都在一个包含函数的类中,但是当我执行函数时,我的整个文件夹图像都会被删除。。。 我已经检查了是否选择了正确的用户,路径是否正确。当我在测试的时候。php文件它工作得很好,但在我的函数中它被破坏了。 如果单击“删除”按钮,则转到此功能: 通过给定的id获

  • 问题内容: 更新我的adt插件后。每当我创建任何项目时,都会创建“ appcompat v7”文件夹。我使用了这种依赖性。但是问题是假设我当时有5个项目。它会使5个不同的文件夹做什么? 问题答案: 这是ADT / SDK更新的一部分,这并不是一件坏事。它确保您的应用程序完全支持在API 14+中实现的ActionBarActivity。默认情况下,它将在每次创建时创建,但是您只需做一些工作就可以保

  • 问题内容: 在Java中,我想删除包含文件和文件夹的文件夹中存在的所有内容。 此代码不起作用,执行此操作的最佳方法是什么? 问题答案: 如果您使用Apache Commons IO,那么它是单线的: 请参阅FileUtils.deleteDirectory() 番石榴曾经支持类似的功能: 几个版本之前已将其从Guava中删除。 虽然以上版本非常简单,但也很危险,因为它在不告诉您的情况下做出了许多假

  • 问题内容: 如何在Python中删除文件或文件夹? 问题答案: 删除文件。 删除一个空目录。 删除目录及其所有内容。 模块中的对象还公开了这些实例方法: 删除文件或符号链接。 删除一个空目录。

  • 我想从名为"fajlovi"的文件夹中删除文件。多个和单个删除应该工作。但是它会删除文件夹中的第一个文件(文件夹中文件数组中的0位置)。如果我检查任何文件,它将删除前4个文件,而不是我检查的文件。下面是代码: 1.这是页面的截图: 2.然后我检查要删除的图像: 4.再次进入页面后,我们可以看到错误的图像被删除:

  • 引用 删除空文件夹.nsi 的内容: SetCompressor /SOLID lzma SetCompress force !include "FileFunc.nsh" !insertmacro Locate XPStyle on OutFile "删除空文件夹.exe" Name "" Var INI Page Custom ShowCustom LeaveCustom Function