2

我无法从我的 Python 项目中递归删除 pyc 文件。

这是项目:

    目录:C:\Users\jk025523\projects\ex47


模式 LastWriteTime 长度 名称
---- ------------- ------ ----
d----- 2016 年 7 月 10 日 01:52 斌
d----- 10/07/2016 01:52 文档
d----- 10/07/2016 01:52 ex47
d----- 10/07/2016 01:52 测试
-a---- 09/07/2016 21:02 521 setup.py

tests 目录中确实有一些 pyc 文件:

    目录:C:\Users\jk025523\projects\ex47\tests


模式 LastWriteTime 长度 名称
---- ------------- ------ ----
-a---- 09/07/2016 21:28 180 ex47_tests.py
-a---- 09/07/2016 21:28 721 NAME_tests.pyc
-a---- 05/07/2016 10:52 0 __init__.py
-a---- 05/07/2016 11:37 140 __init__.pyc

但是,当我在 PowerShell 中输入此命令以删除所有 pyc 文件时:

find . -name "*.pyc" -exec rm -rf {}

PowerShell 输出此错误:

FIND:参数格式不正确

有人知道如何从这个 Python 项目中删除所有 pyc 文件吗?

4

2 回答 2

6

您尝试使用的命令是 Linux/Unixfind命令,它在 Windows 上不起作用(除非您安装了 Cygwin 之类的东西,我不推荐)。Windows 有一个同名的命令,但功能不同(更像grep)。PowerShell 没有findcmdlet 或别名。您可以在 PowerShell 中递归删除具有特定扩展名的文件,如下所示:

Get-ChildItem -Filter '*.pyc' -Force -Recurse | Remove-Item -Force
于 2016-07-10T02:04:02.027 回答
1

如果您正在运行的“查找”命令是 linux/unix 等价的,那么您--exec rm -rf {}将需要在末尾添加一个分隔符。像这样:

find . -name "*.pyc" -exec rm -rf "{}" \;

我还建议始终将变量括号 ( {}) 括在引号中,以确保您删除的内容不会超过您尝试删除的内容。

编辑:看起来您正在使用 Windowsfind变体,它不支持您尝试使用的参数。您可以查看此页面以获取语法示例。

您可能想查看这些答案之一以寻找替代方案。

于 2016-07-10T01:04:39.680 回答