电脑随着使用时间的增加,我们在电脑中储存的文件变得越来越多。当这个时候你想要查找一个文件,但是又忘记了文件的位置在哪,想通过排序查找这个文件,又由于文件夹里面文件太多,根本找不到。
如果使用电脑自带的搜索,时间又很长。
那么在面对海量的存储文件,其实我们可以通过其实我们可以通过Python实现本机文件的检索,帮助大家找到遗忘在电脑某处的文件。
首先,介绍一下所需要的模块:os模块和re模块。
os模块: 提供了多数操作系统的功能接口函数,当os模块被导入后,它会自适应于不同的操作系统平台,根据不同的平台进行相应的操作,在Python编程时,经常使用os模块与文件、目录打交道。
re模块:是用来匹配字符串非常强大的工具,利用正则表达式,我们可以快捷地从返回的页面内容提取出我们想要的内容。
接下来我们就从以下两种情况分别给大家展示代码。
根据文件名和所在盘符寻找文件
当我们知道文件所在的盘符(比如c盘、d盘),也知道文件全名时,我们可以通过以下代码寻找文件被放在哪一个文件夹下面。
import osdef search1(path, filename):
for root, dirs, files in os.walk(path):
if filename in dirs or filename in files:
root = str(root)
return os.path.join(root, filename)
else:
return False
position = input('请输入文件所在磁盘位置:')
name = input('请输入文件全名(含后缀):')print('正在查找中...')
path = search1(position + ':\\', name)print('目标文件具体位置为:', path)
在文件夹中检索文件
当我们知道文件具体路径,但是不记得具体文件名,我们可以用代码进入文件夹里进行检索。
这种适合当前文件夹存在很多文件的情况。
import os
result = []def search2(path=".", name=""):
for item in os.listdir(path):
item_path = os.path.join(path, item)
if os.path.isdir(item_path):
search(item_path, name)
elif os.path.isfile(item_path):
if name in item:
global result
result.append(item_path + ";")
print(item_path + ";")
while True:
path = input('请输入路径(输入0结束函数):')
if path == '0':
break
name = input('请输入关键字(输入0结束函数)')
if name == '0':
break
else:
search(path, name)
读者福利:如果你也喜欢编程,想通过学习Python转行获取更高薪资,那这套Python学习资料一定对你有用!
对于0基础小白入门:
如果你是零基础小白,想快速入门Python是可以考虑的
一方面是学习时间相对较短,学习内容更全面更集中
二方面是可以找到适合自己的学习方案
包括:Python安装包+激活码、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等教程。带你从零基础系统性的学好Python!
读者福利:2023年零基础学Python必备资料(视频+源码+工具+软件) 安全链接免费领取
一、Python所有方向的学习路线
Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
二、学习软件
工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。
三、入门学习视频
我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。
四、实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
五、100道Python练习题
检查学习结果。
六、面试资料
我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
标签:文件,实用教程,Python,学习,item,查找,path,os From: https://blog.csdn.net/python03012/article/details/136883315