python 查找文件名包含指定字符串的方法

yipeiwu_com6年前Python基础

编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。

import os
class SearchFile(object):
 def __init__(self,path='.'):
 self._path=path
 self.abspath=os.path.abspath(self._path) # 默认当前目录
 def findfile(self,keyword,root):
 filelist=[]
 for root,dirs,files in os.walk(root):
  for name in files:  
  fitfile=filelist.append(os.path.join(root, name))
  #print(fitfile)
  print(os.path.join(root, name))
 #print(filelist)
 print('...........................................')
 for i in filelist:  
  if os.path.isfile(i):
  #print(i)
  if keyword in os.path.split(i)[1]:
   print('yes!',i) # 绝对路径
  #else:
   #print('......no keyword!')
 def __call__(self):
 while True:
  workpath=input('Do you want to work under the current folder? Y/N:')
  if(workpath == ''):
  break
  if workpath=='y' or workpath=='Y':
  root=self.abspath # 把当前工作目录作为工作目录
  print('当前工作目录:',root)
  dirlist=os.listdir() # 列出工作目录下的文件和目录
  print(dirlist)
  else:
  root=input('please enter the working directory:')
  print('当前工作目录:',root)
  keyword=input('the keyword you want to find:')
  if(keyword==''): 
  break
  self.findfile(keyword,root) # 查找带指定字符的文件
if __name__ == '__main__':
 search = SearchFile()
 search()

运行结果:

注意:在运行的时候如果选择y,也就是把.py文件所在的目录作为工作目录,此时最好不要把.py文件放到桌面上,因为会遍历桌面上的所有目录及目录下的所有文件,会很大。

以上这篇python 查找文件名包含指定字符串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

用C++封装MySQL的API的教程

其实相信每个和mysql打过交道的程序员都应该会尝试去封装一套mysql的接口,这一次的封装已经记不清是我第几次了,但是每一次我希望都能做的比上次更好,更容易使用。 先来说一下这次的封装...

对python 读取线的shp文件实例详解

如下所示: import shapefile sf = shapefile.Reader("E:\\1.2\\cs\\DX_CSL.shp") shapes = sf.shapes(...

python的numpy模块安装不成功简单解决方法总结

python的numpy模块安装不成功简单解决方法总结

为了画个图,被numpy这个模块的安装真的折腾疯了!!!一直装不上,花了几个小时,看了网上的很多教程、方法发现总结得不是很全,这里总结一下,防止大家再出现这个问题没有解决方法。 Pyth...

Python查看微信撤回消息代码

Python查看微信撤回消息代码

微信(WeChat) 是腾讯公司于2011年1月21日推出的一个为智能终端提供即时通讯服务的免费应用程序,由张小龙所带领的腾讯广州研发中心产品团队打造 。在互联网飞速发展的下、民众的需求...

python求解水仙花数的方法

本文实例讲述了python求解水仙花数的方法。分享给大家供大家参考。具体如下: 一个N位的十进制正整数,如果它的每个位上的数字的N次方的和等于这个数本身,则称其为花朵数。 #!/us...