找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3673|回复: 4

[讨论] 本想试着用python来实现windows系统自带的搜索功能,结果.....

2

主题

4

帖子

4

积分

贫民

积分
4
智仝障 发表于 2018-6-19 13:06:30 | 显示全部楼层 |阅读模式
windows的搜索结果:
InkedQQ截图20180619125814_LI.jpg


自编小程序的搜索结果:
QQ截图20180619125742.jpg


小程序源码:
QQ截图20180619130124.jpg

有大神能讲讲为啥搜索结果会有这么大的差距??虽说自己写的代码是初步实现了搜索功能,可是搜索结果比起系统自带的而言,少得可怜...
自我感觉自己写的逻辑也没有错啊...
求大神指点...到底是为啥啊?

回复

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-19 14:56:25 | 显示全部楼层
符合filename的目录才进入下一次循环.
参考
Screenshot from 2018-06-19 14-55-47.png
回复 支持 反对

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
智仝障  楼主| 发表于 2018-6-20 16:53:37 | 显示全部楼层
sheeboard 发表于 2018-6-19 14:56
符合filename的目录才进入下一次循环.
参考

谢大神!
回复 支持 反对

使用道具 举报

2

主题

4

帖子

4

积分

贫民

积分
4
智仝障  楼主| 发表于 2018-6-22 10:46:07 | 显示全部楼层
本帖最后由 智仝障 于 2018-6-22 10:57 编辑
sheeboard 发表于 2018-6-19 14:56
符合filename的目录才进入下一次循环.
参考

大神还在吗?
前天根据你说的os.walk()函数,修改了下代码。
原本以为已经能实现了,可今天无意间再拿出来测试几次的时候才发现,还是有点问题:搜索结果的数目比系统自带的多,多了不止一倍...(之前自己写的代码还是区分大小写的时候,搜索结果就已经比系统自带的多了,现在我加了lower()不区分大小写之后,那就多得更多了...)
想问下大神,是我的递归写得有问题,导致了重复搜索吗?

系统搜索结果: InkedQQ截图20180622103526_LI.jpg

小程序搜索结果:
InkedQQ截图20180622103500_LI.jpg

然后,两种搜索工具搜出来的结果又有一致的时候:
InkedQQ截图20180622105107_LI.jpg InkedQQ截图20180622105057_LI.jpg

  1. import os  
  2. n=0

  3. def findfile(path,filename):
  4.     global n
  5.     for addr,dirs,files in os.walk(path):
  6.         for x in dirs:
  7.             if filename.lower() in x.lower():
  8.                 print(os.path.join(addr,x))
  9.                 n+=1
  10.                 findfile(os.path.join(addr,x),filename)
  11.         for y in files:
  12.             if filename.lower() in y.lower():
  13.                 n+=1
  14.                 print(os.path.join(addr,y))

  15. filename=input('请输入要查找的文件名:')
  16. path=input('请输入要搜索的位置:')
  17. findfile(path,filename)
  18. if n==0:
  19.     print("找不到任何与%s有关的文件或文件夹" %filename)
  20. else:
  21.         print("共找到%d个与“%s”有关的文件或文件夹" %(n,filename))
复制代码



回复 支持 反对

使用道具 举报

0

主题

956

帖子

956

积分

圣骑士

积分
956
sheeboard 发表于 2018-6-24 09:41:49 | 显示全部楼层
本帖最后由 sheeboard 于 2018-6-24 11:49 编辑

不是什么大神,就一普通爱好者.
如果是单层目录一样,多层目录不一致,可能是dirs的计数有问题,人工比较一下两者目录有什么区别,比如隐藏文件夹属性,重复计数等。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表