无法以递归方式从Python项目中删除pyc文件

时间:2016-07-10 00:59:12

标签: powershell recursion pyc

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

这是项目:

    Directory: C:\Users\jk025523\projects\ex47


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
d-----       10/07/2016     01:52                bin
d-----       10/07/2016     01:52                docs
d-----       10/07/2016     01:52                ex47
d-----       10/07/2016     01:52                tests
-a----       09/07/2016     21:02            521 setup.py

测试目录中确实存在一些pyc文件:

    Directory: C:\Users\jk025523\projects\ex47\tests


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-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文件吗?

2 个答案:

答案 0 :(得分:5)

您尝试使用的命令是Linux / Unix here命令,它不能在Windows上运行(除非您安装了Cygwin之类的东西,我不会这样做推荐)。 Windows具有find,但功能不同(更像grep)。 PowerShell没有find cmdlet或别名。您可以使用PowerShell中的特定扩展名递归删除文件:

Get-ChildItem -Filter '*.pyc' -Force -Recurse | Remove-Item -Force

答案 1 :(得分:0)

如果"发现"你正在运行的命令是linux / unix的等价物,你的--exec rm -rf {}最后需要一个分隔符。像这样:

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

我还建议始终将变量括号({})包装在引号中,以确保不会删除多于您要删除的内容。

编辑:看起来您使用的是Windows find变体,它不支持您尝试使用的参数。您可以查看this page语法示例。

您可能需要查看one of these answers的替代方案。