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设计】。

相关文章

Python基础教程之if判断,while循环,循环嵌套

if判断 判断的定义  如果条件满足,就做一件事;条件不满足,就做另一件事;  判断语句又被称为分支语句,有判断,才有分支; if判断语句基本语法 if语句格式:...

Python numpy 提取矩阵的某一行或某一列的实例

如下所示: import numpy as np a=np.arange(9).reshape(3,3) a Out[31]: array([[0, 1, 2], [3,...

python模拟enum枚举类型的方法小结

本文实例总结了python模拟enum枚举类型的方法。分享给大家供大家参考。具体分析如下: python中没有enum枚举类型,可能python认为这玩意压根就没用,下面列举了三种方法模...

python3+pyqt5+itchat微信定时发送消息的方法

python3+pyqt5+itchat微信定时发送消息的方法

编这个程序是想过节过年,一些重要的纪念日,给亲戚好友发祝福之类的,但要凌晨0点才显得比较有诚意,可我又比较贪睡,常常忘了,所以就有了编个微信定时发送消息小程序. 运行环境: python...

解决Python设置函数调用超时,进程卡住的问题

背景: 最近写的Python代码不知为何,总是执行到一半卡住不动,为了使程序能够继续运行,设置了函数调用超时机制。 代码: import time import signal...