【问题标题】:Can't recursively delete pyc files from Python project无法从 Python 项目中递归删除 pyc 文件
【发布时间】:2016-07-10 00:59:11
【问题描述】:

我无法从我的 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 输出此错误:

发现:参数格式不正确

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

【问题讨论】:

  • 这不是 python 问题。请调整标签
  • 我不明白你所说的“请调整标签”是什么意思——我对编程和 Python 很陌生
  • Stack Overflow 上的帖子标签

标签: powershell recursion pyc


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    【讨论】:

    • 嗨 - 谢谢!我尝试了您的解决方案,Powershell 刚刚输出了以下错误:我尝试将变量括号括在引号中,并尝试将变量括号用引号解开。 Powershell 两次都输出这个错误:FIND: Parameter format not correct
    • 感谢@Liam 的编辑。我将做一些研究并找出如何删除 Powershell 中的所有 pyc 文件。看起来我正在运行适用于 Bash 而不是 Powershell 的“查找”命令。如果您知道如何在 Powershell 中完成这项工作,我将不胜感激您的任何见解。不管怎样,谢谢!
    猜你喜欢
    • 2014-02-27
    • 2010-10-21
    • 2010-11-06
    • 1970-01-01
    • 2015-05-13
    • 1970-01-01
    • 2010-09-19
    • 2012-03-04
    相关资源
    最近更新 更多