对Python 文件夹遍历和文件查找的实例讲解


Posted in Python onApril 26, 2018

实例如下所示:

# -*- coding: utf-8 -*-
#to find where use the table on xxxxx xxxxxx  production env
'''
在项目中我们元数据管理的不是很好,如果先知道一张表在哪里用过,就需要写个程序去遍历下
'''
import os
import os.path
rootdir =  "C:\\Users\\IBM_ADMIN\\IBM\\rationalsdp\\workspace"#   # 指明被遍历的文件夹
query = "xxxxxxxxx"              
def walk_all_files(rootdir,query):
  for parent,dirnames,filenames in os.walk(rootdir):  #for循环自动完成递归枚举 #三个参数:分别返回1.父目录(当前路径) 2.所有文件夹名字(不含路径) 3.所有文件名字
    for dirname in dirnames:             #输出文件夹信息
      #print "parent is:" + parent
      #print "dirname is :" + dirname
      pass
    for filename in filenames:            #输出文件信息
      #print "parent is :" + parent
      #print "filename is:" + filename
      #print "the full name of the file is :" + os.path.join(parent,filename)
      is_file_contain_word(os.path.join(parent,filename),query)
def is_file_contain_word(file_,query_word):
  #print 1111111
  if query_word in open(file_).read() :
    print file_
    filecontext = open(file_).read()
    lines = filecontext.split('\n')         # python打印关键词所在行
    for line in lines:
      if query_word in line:
        print line
walk_all_files(rootdir,query)
print "done"
'''
http://www.iplaypy.com/jichu/note.html
please explain os.walk() :
walk()方法语法格式如下:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
参数
  top -- 根目录下的每一个文件夹(包含它自己), 产生3-元组 (dirpath, dirnames, filenames)【文件夹路径, 文件夹名字, 文件名】。
  topdown --可选,为True或者没有指定, 一个目录的的3-元组将比它的任何子文件夹的3-元组先产生 (目录自上而下)。如果topdown为 False, 一个目录的3-元组将比它的任何子文件夹的3-元组后产生 (目录自下而上)。
  onerror -- 可选,是一个函数; 它调用时有一个参数, 一个OSError实例。报告这错误后,继续walk,或者抛出exception终止walk。
  followlinks -- 设置为 true,则通过软链接访问目录。
返回值
该方法没有返回值。
'''

以上这篇对Python 文件夹遍历和文件查找的实例讲解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python matlibplot绘制多条曲线图
Feb 19 Python
Python 3.8新特征之asyncio REPL
May 28 Python
python关于矩阵重复赋值覆盖问题的解决方法
Jul 19 Python
python kafka 多线程消费者&手动提交实例
Dec 21 Python
python列表返回重复数据的下标
Feb 10 Python
scrapy爬虫:scrapy.FormRequest中formdata参数详解
Apr 30 Python
使用keras根据层名称来初始化网络
May 21 Python
基于python纯函数实现井字棋游戏
May 27 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
python中的时区问题
Jan 14 Python
Pytorch DataLoader shuffle验证方式
Jun 02 Python
Python 使用 Frame tkraise() 方法在 Tkinter 应用程序中的Frame之间切换
Apr 24 Python
Python3.遍历某文件夹提取特定文件名的实例
Apr 26 #Python
Python实现按当前日期(年、月、日)创建多级目录的方法
Apr 26 #Python
python实现对指定输入的字符串逆序输出的6种方法
Apr 26 #Python
Python实现字符串的逆序 C++字符串逆序算法
May 28 #Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 #Python
TensorFlow损失函数专题详解
Apr 26 #Python
浅谈Tensorflow模型的保存与恢复加载
Apr 26 #Python
You might like
基于HTTP长连接的"服务器推"技术的php 简易聊天室
2009/10/31 PHP
PHP文件上传类实例详解
2016/04/08 PHP
PHP析构函数destruct与垃圾回收机制的讲解
2019/03/22 PHP
Laravel向公共模板赋值方法总结
2019/06/25 PHP
JavaScript 格式字符串的应用
2010/03/29 Javascript
不用锚点也可以平滑滚动到页面的指定位置实现代码
2013/05/08 Javascript
JQuery记住用户名密码实现下次自动登录功能
2015/04/27 Javascript
原生JS和jQuery版实现文件上传功能
2016/04/18 Javascript
jquery pagination分页插件使用详解(后台struts2)
2017/01/22 Javascript
详解Vue-cli代理解决跨域问题
2017/09/27 Javascript
elementUI Vue 单个按钮显示和隐藏的变换功能(两种方法)
2018/09/04 Javascript
vuejs2.0运用原生js实现简单拖拽元素功能
2020/08/21 Javascript
JavaScript多种滤镜算法实现代码实例
2019/12/10 Javascript
[01:48]帕吉至宝加入游戏,遗迹战场现“千劫神屠”
2018/04/07 DOTA
python下如何让web元素的生成更简单的分析
2008/07/17 Python
python批量修改文件后缀示例代码分享
2013/12/24 Python
python中二维阵列的变换实例
2014/10/09 Python
简单介绍利用TK在Python下进行GUI编程的教程
2015/04/13 Python
详解Python pygame安装过程笔记
2017/06/05 Python
在IPython中执行Python程序文件的示例
2018/11/01 Python
不到40行代码用Python实现一个简单的推荐系统
2019/05/10 Python
python暴力解压rar加密文件过程详解
2019/07/05 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python空元组在all中返回结果详解
2020/12/15 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
CSS3实现DIV圆角效果完整代码
2012/10/10 HTML / CSS
俄罗斯天然和有机产品、健康生活网上商店:Fitomarket.ru
2020/10/09 全球购物
MVC的各个部分都有那些技术来实现?如何实现?
2016/04/21 面试题
基于Python 函数和方法的区别说明
2021/03/24 Python
留学经费担保书
2014/05/12 职场文书
中国梦演讲稿5分钟
2014/08/19 职场文书
购房委托书范本
2014/09/18 职场文书
十月围城观后感
2015/06/08 职场文书
少先队中队工作总结2015
2015/07/23 职场文书
员工规章制度范本
2015/08/07 职场文书
Java 使用类型为Object的变量指向任意类型的对象
2022/04/13 Java/Android