
👉 项目官网:https://www.python-office.com/ 👈

大家好,这里是程序员晚枫,正在all in AI编程实战。
文件太多找不到?Windows 自带的搜索太慢?
今天教你怎么用 python-office 快速搜索文件。
1、按文件名搜索
在指定文件夹里搜索文件:
1 2 3 4 5 6 7 8 9 10
| import office
results = office.file.search( folder='C:\\Users\\你的用户名\\Desktop', keyword='报告' )
for path in results: print(path)
|
2、按文件类型搜索
1 2 3 4 5 6 7 8
| import office
results = office.file.search( folder='.', keyword='.xlsx', file_type='xlsx' )
|
支持的文件类型:xlsx, docx, pdf, jpg, png 等。
3、搜索并显示文件信息
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import office
results = office.file.search( folder='.', keyword='合同', with_info=True )
for info in results: print(f'文件: {info["path"]}') print(f'大小: {info["size"]} KB') print(f'修改时间: {info["mtime"]}') print('---')
|
4、全盘搜索(慎用!)
搜索整个硬盘(会比较慢):
1 2 3 4 5 6 7 8 9 10 11
| import office
results = office.file.search_all( disk='D:\\', keyword='重要' )
print(f'找到 {len(results)} 个结果') for path in results[:20]: print(path)
|
5、实战案例:找出去年所有的PDF报表
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| import office import os from datetime import datetime
def find_old_reports(folder, year=2023): """找出指定年份的PDF报表""" results = office.file.search( folder=folder, keyword='.pdf', file_type='pdf' ) old_reports = [] for path in results: mtime = os.path.getmtime(path) dt = datetime.fromtimestamp(mtime) if dt.year == year and '报表' in path: old_reports.append(path) return old_reports
reports = find_old_reports('C:\\报表', year=2023) print(f'找到 {len(reports)} 份{year}的报表:') for r in reports: print(r)
|
6、实战案例:按大小找大文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| import office import os
def find_large_files(folder, min_mb=100): """找出大于指定大小的文件""" large_files = [] for root, dirs, files in os.walk(folder): for file in files: path = os.path.join(root, file) size_mb = os.path.getsize(path) / (1024 * 1024) if size_mb >= min_mb: large_files.append({ 'path': path, 'size_mb': round(size_mb, 2) }) large_files.sort(key=lambda x: x['size_mb'], reverse=True) return large_files
files = find_large_files('C:\\', min_mb=1000) for f in files[:10]: print(f"{f['size_mb']} MB - {f['path']}")
|
7、常见问题
Q:搜索太慢?
A:可以限定搜索范围,不要搜整个硬盘。
Q:找不到文件?
A:检查关键词拼写,或者搜索更宽泛的词。
Q:结果太多?
A:加更多筛选条件,比如 file_type、min_size 等。
8、下讲预告
学会了文件搜索,下一讲我们学 自动化调度:定时执行任务。
敬请期待!
有问题欢迎加微信 python-office 进群交流~
程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。
🎓 AI 编程实战课程
想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!