win10 怎么搜索.py而不含.pyc
在 Windows 10 中搜索 .py 文件而不包含 .pyc 文件,可以通过以下几种方法实现,从简单到高效,你可以根据自己的需求选择:
这是最直接的方法,无需安装任何额外软件。
打开文件资源管理器,进入你想要搜索的目录(例如你的项目文件夹)。
点击右上角的搜索框。
输入以下搜索语法:
1*.py -*.pyc
*.py 表示匹配所有以 .py 结尾的文件。
-*.pyc 表示排除所有以 .pyc 结尾的文件。
这样,搜索结果中就只会显示 .py 源代码文件,而不会包含编译后的 .pyc 缓存文件。
Everything 是一款非常强大的文件搜索工具,它基于文件名实时索引,速度极快,是开发者的必备神器。
下载并安装 Everything。
打开 Everything,在搜索栏中输入:
1*.py !*.pyc
提示:Everything 的语法中,
!代表“非”或“排除”,非常直观。
*.py 表示匹配所有 .py 文件。
!*.pyc 表示排除 .pyc 文件。
如果你需要在代码中实现这个功能,或者想要更复杂的过滤逻辑(比如同时排除 __pycache__ 目录),可以使用 Python 的 pathlib 模块。
1from pathlib import Path23def find_py_files(root_path):4 """递归查找所有 .py 文件,排除 .pyc 和 __pycache__"""5 root = Path(root_path)6 py_files = []7 8 # 使用 rglob('*') 获取所有文件,然后进行过滤9 for file_path in root.rglob('*'):10 if (file_path.is_file() and 11 file_path.suffix.lower() == '.py' and # 确保是 .py 文件(不区分大小写)12 '__pycache__' not in file_path.parts and # 排除 __pycache__ 目录13 not file_path.name.startswith('.')): # 排除隐藏文件14 py_files.append(file_path)15 16 return py_files1718# 使用示例19files = find_py_files('你的项目路径')20for f in files:21 print(f)表格
| 文件资源管理器 | 系统自带,无需安装 | 速度相对较慢,语法功能有限 | 临时、简单的文件查找 |
| Everything | 速度极快,语法强大 | 需要额外安装软件 | 日常开发、频繁查找文件 |
| Python 脚本 | 逻辑最灵活,可集成到项目中 | 需要编写代码 | 自动化脚本、代码分析工具 |
为了更直观地确认文件类型,建议在 Windows 设置中开启“显示文件扩展名”,避免被隐藏的扩展名误导。
操作路径:文件资源管理器 -> 查看 -> 勾选“文件扩展名”。
![]()
![]()
![]()
9篇来源
*.py -*.pyc 不行啊,搜出了pyc的了
很抱歉,刚才的搜索语法在 Windows 资源管理器中可能无法达到预期的排除效果。
这里提供两个经过验证的有效方法,可以准确地只搜索出 .py 文件。
这是最可靠的方法,利用 dir 命令的通配符功能可以精确匹配。
打开命令提示符 (cmd)。
使用 cd 命令进入你想要搜索的目录。例如:
1cd /d D:\your_project_folder
执行以下命令:
1dir *.py /b /s
dir:列出目录内容的命令。
*.py:只匹配以 .py 结尾的文件。
/b:使用 bare format(简洁格式),只显示文件路径,不显示多余信息。
/s:递归搜索当前目录及其所有子目录。
这个命令会精确列出所有 .py 文件,完全不会包含 .pyc。
Everything 是一款极其强大的文件搜索工具,它的搜索语法非常直观且功能强大。
如果尚未安装,请先下载并安装 Everything。
打开 Everything,在搜索框中直接输入:
按回车键,它会瞬间列出电脑上所有 .py 文件。
提示:Everything 的索引非常快,而且默认情况下它的语法就支持精确匹配通配符,比 Windows 自带的搜索更符合直觉。
*.py -*.pyc 不行?Windows 资源管理器的搜索语法比较特殊,并不完全等同于其他搜索引擎的逻辑。它对 -(减号)排除操作符的处理方式可能导致它没有按预期工作,尤其是在只搜索文件名而不指定属性时。因此,使用命令行或 Everything 是更稳妥的选择。
![]()
![]()
7篇来源
dir *.py /b /s 看不到文件的大小 日期啊
你说得对,/b 参数的作用就是只显示文件的路径,不显示其他信息。
如果想看文件的大小、修改日期和时间等详细信息,你只需要去掉 /b 参数即可。
请使用以下命令:
1dir *.py /s
这个命令会递归搜索 (/s) 所有 .py 文件,并以默认格式显示,其中就包含了 文件大小 和 修改日期/时间 等信息。
如果默认格式的信息太多或太少,你还可以根据需要添加其他参数来定制显示内容:
按时间排序(最新的在前):
如果你想让最新的文件排在最上面,可以加上 /o-d 参数。
1dir *.py /s /o-d
按大小排序(大的在前):
如果你想看哪些文件最大,可以加上 /o-s 参数(注意是小写 s)。
1dir *.py /s /o-s
以更易读的单位显示大小:
默认大小是以字节(Bytes)为单位的,数字可能很大。加上 /h 参数后,会自动以 KB、MB、GB 为单位显示,更直观。
1dir *.py /s /h
![]()
![]()
![]()
4篇来源
dir *.py /s /o-s 显示的一段一段的,不是整个排序的
你观察得非常仔细!这确实是 Windows dir 命令的一个特性。
dir 命令的排序逻辑是按目录分层进行的,而不是将整个磁盘或所有子目录的文件放在一起全局排序。
具体来说,它的执行过程如下:
进入一个目录:比如 D:\project。
列出并排序:在这个目录下,它会把找到的 .py 文件按大小排好序。
递归进入子目录:然后它会进入 D:\project\subfolder1,重复第 2 步,在这个子目录内部再进行排序。
输出结果:它会先输出 D:\project 里的排序结果,再输出 D:\project\subfolder1 里的排序结果。
这就导致了你看到的现象:每个目录内的文件是有序的,但不同目录之间是断开的。这并不是 bug,而是 dir 命令的设计逻辑(先按目录分组,再在组内排序)。
如果你需要把所有目录下的文件放在一起,按大小全局排序,最好的方法是使用 PowerShell,它可以把所有文件先“收集”到一个列表里,再统一排序。
请尝试在 PowerShell(不是 cmd)中运行以下命令:
1Get-ChildItem -Path . -Filter *.py -Recurse | Sort-Object Length -Descending
命令解释:
Get-ChildItem:获取项目(相当于 dir)。
-Path .:从当前目录开始。
-Filter *.py:只过滤 .py 文件。
-Recurse:递归搜索子目录(相当于 /s)。
|:管道,把前一个命令的结果传给下一个命令。
Sort-Object Length -Descending:按文件长度(大小)进行降序排序(从大到小)。
这样你就能得到一个从大到小排列的、包含所有子目录文件的完整列表了。
![]()
![]()
![]()
3篇来源
为啥PowerShell一右键就粘贴,这么反人类设计,我想复制咋办
这确实让很多从传统命令提示符(cmd)转过来的用户感到非常不适应。PowerShell 的这个行为是由它的“上下文菜单”(Context Menu)模式决定的。
简单来说,PowerShell 默认处于“标记模式”(Mark Mode),在这种模式下,鼠标右键的优先级是“粘贴”,而不是“复制”或弹出菜单。
别担心,有几种方法可以解决这个问题,让你既能复制也能粘贴:
这是最根本的解决办法,开启后,PowerShell 的行为会变得和 cmd 一样,非常顺手。
在 PowerShell 窗口的标题栏上点击鼠标右键。
选择 “属性”。
切换到 “选项” 选项卡。
在“编辑选项”区域,勾选 “快速编辑模式”。
点击“确定”保存。
效果:
复制:像在普通软件里一样,用鼠标左键选中文本,然后按一下 Enter 键(或者在某些新版系统中直接选中即复制)。
粘贴:直接点击鼠标右键。
如果你不想修改设置,可以继续使用默认的“标记模式”,但需要掌握它的操作逻辑:
复制:
用鼠标左键选中你想要复制的文本(此时不要动)。
关键步骤:选中后,不要移动鼠标,直接按一下 Enter 键。这样文本就被复制到剪贴板了。
粘贴:
直接点击鼠标右键。
如果你习惯了键盘操作,PowerShell 其实也支持现代的快捷键,但这通常需要在属性里开启,或者在较新的 Windows 10/11 版本中默认支持:
确保在“属性” -> “选项”中勾选了 “启用 Ctrl 键快捷方式”。
复制:选中文本后,按 Ctrl + C。
粘贴:按 Ctrl + V。
表格
| 复制 | 选中文本 -> 按 Enter 键 | 鼠标左键选中即复制(或按 Enter) |
| 粘贴 | 点击鼠标右键 | 点击鼠标右键 |
建议你直接按 方法一 开启“快速编辑模式”,这样就符合大多数人的直觉习惯了。