python实现搜索本地文件信息写入文件的方法


Posted in Python onFebruary 22, 2016

本文实例讲述了python实现搜索本地文件信息写入文件的方法。分享给大家供大家参考,具体如下:

主要功能:

在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件,然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的文件(如果文件不存在,则建立相应的文件)中

先卡看运行效果吧:

运行效果的前部分:

python实现搜索本地文件信息写入文件的方法

运行效果的后部分:

python实现搜索本地文件信息写入文件的方法

写入信息后的文件:

python实现搜索本地文件信息写入文件的方法

代码部分:

#在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件
#然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的
#文件(如果文件不存在,则建立相应的文件)中
import os
import time
#指定盘符
DESK = 'E:\\'
#信息保存文件的路径
##########    这里请先建立好此文件,我在做文件操作的过程中
##########    使用os.mknod('E:\\info.txt'),系统不会建立文件的
SAVE_FILE = 'E:\\info.txt'
#文件后缀类型
FILE_EXT = ['bmp','jpeg','gif','psd','png','jpg']
#定义全局变量
my_dirs = []
my_files = []
#文件个数
FILES_NUMBER = 0
#符合要求的文件个数
RIGHT_FILES_NUMBER = 0
#不符合要求的文件个数
NOT_RIGHT_FILES_NUMBER = 0
#文件夹个数
DIR_NUMBER = 0
#获取指定文件夹下面的所有文件及文件夹
#如果指定的文件夹不存在,则返回相应的提示信息
def listdir(dir_path):
  if os.path.exists(dir_path):
    return os.listdir(dir_path)
  else:
    return '目录'+ dir_path + '不存在'
#搜索文件主函数
def search_files(path,name):
  if not os.path.isdir(path) and not os.path.isfile(path):
    return False
  path = os.path.join(path,name)
  if os.path.isfile(path): #是文件
    global FILES_NUMBER
    FILES_NUMBER = FILES_NUMBER + 1
    lists = path.split('.')
    #print('============================================',lists)
    file_ext = lists[-1] #文件扩展名
    if file_ext in FILE_EXT:
      global RIGHT_FILES_NUMBER
      RIGHT_FILES_NUMBER = RIGHT_FILES_NUMBER + 1
      global my_files
      now = str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
      size = str(get_file_size(path))
      my_files.append(now+'  '+path+'  '+size+'\n')
      print('文件:',path)
    else:
      global NOT_RIGHT_FILES_NUMBER
      NOT_RIGHT_FILES_NUMBER = NOT_RIGHT_FILES_NUMBER + 1
  elif os.path.isdir(path): #是文件夹
    global DIR_NUMBER
    DIR_NUMBER = DIR_NUMBER + 1
    for name in listdir(path):
      #print(os.path.join(path,name))
      search_files(path,name)
#获取文件大小
def get_file_size(path):
  if os.path.exists(path):
    return os.path.getsize(path)
#写入信息
def write_info(content):
  if os.path.exists(path):
    with open(SAVE_FILE,'w+') as fp:
      fp.write(content)
      fp.flush()
      fp.close()
  else:
    print('文件:{}不存在!'.format(SAVE_FILE))
#读取所有信息
def read_info():
  if os.path.exists(path):
    with open(SAVE_FILE,'r+') as fp:
      for line in fp:
        print(line)
  else:
    print('文件:{}不存在!'.format(SAVE_FILE))
if __name__ == '__main__':
  for d in listdir(DESK):
    my_dirs.append(os.path.join(DESK,d))
  print(my_dirs)
  #这里是做测试用的,由于扫描整个盘符涉及到的文件和文件夹很多,可能要花一定的时间
  #所以这里可以使用一个文件夹作为测试
  my_dir = ['E:\\test']
  for path in my_dir:
    search_files(path,'')
  print('#' * 50)
  print(my_files)
  print('#' * 50)
  print('开始写入信息...')
  content = ''.join(my_files)
  write_info(content)
  print('#' * 50)
  print('开始读取信息...')
  read_info()
  print('#' * 50)
  print('搜索文件夹总数:{0},文件总数:{1}'.format(DIR_NUMBER,FILES_NUMBER))
  print('符合要求的文件总数:{0},不符合要求的文件总数:{1}'.format(RIGHT_FILES_NUMBER,NOT_RIGHT_FILES_NUMBER))

运行控制台情况;

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>> 
['E:\\bb', 'E:\\devlopment', 'E:\\game', 'E:\\hongten_download', 'E:\\info.txt', 'E:\\log4j', 'E:\\mydir', 'E:\\oracle', 'E:\\oracle10.2_win32', 'E:\\RECYCLER', 'E:\\svn_checkout', 'E:\\System Volume Information', 'E:\\test', 'E:\\The KMPlayer', 'E:\\windows', 'E:\\work']
文件: E:\test\20130627_140132Hongten.jpg
文件: E:\test\20130627_182913(1)Hongten.jpg
文件: E:\test\20130627_183008(1)Hongten.jpg
文件: E:\test\20130627_183054Hongten.jpg
文件: E:\test\20130627_183059Hongten.jpg
文件: E:\test\20130627_183101Hongten.jpg
文件: E:\test\20130627_183116Hongten.jpg
文件: E:\test\20130627_183326Hongten.jpg
文件: E:\test\20130627_183714Hongten.jpg
文件: E:\test\20130627_183749Hongten.jpg
文件: E:\test\20130627_183925Hongten.jpg
文件: E:\test\20130627_203658Hongten.jpg
文件: E:\test\20130627_203802Hongten.jpg
文件: E:\test\20130627_205112(1)Hongten.jpg
文件: E:\test\20130627_205131Hongten.jpg
文件: E:\test\20130627_205159Hongten.jpg
文件: E:\test\20130627_205219(1)Hongten.jpg
文件: E:\test\20130627_205257Hongten.jpg
文件: E:\test\20130627_205315Hongten.jpg
文件: E:\test\20130627_205408(1)Hongten.jpg
文件: E:\test\20130627_205425Hongten.jpg
文件: E:\test\20130627_205627Hongten.jpg
文件: E:\test\20130627_205629Hongten.jpg
文件: E:\test\hongten\6.27\20130627_140132Hongten.jpg
文件: E:\test\hongten\6.27\20130627_182913(1)Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183008(1)Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183054Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183059Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183101Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183116Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183326Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183714Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183749Hongten.jpg
文件: E:\test\hongten\6.27\20130627_183925Hongten.jpg
文件: E:\test\hongten\6.27\20130627_203658Hongten.jpg
文件: E:\test\hongten\6.27\20130627_203802Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205112(1)Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205131Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205159Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205219(1)Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205257Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205315Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205408(1)Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205425Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205627Hongten.jpg
文件: E:\test\hongten\6.27\20130627_205629Hongten.jpg
##################################################
['2013-07-28 17:14:49  E:\\test\\20130627_140132Hongten.jpg  0\n', '2013-07-28 17:14:49  E:\\test\\20130627_182913(1)Hongten.jpg  2380747\n', '2013-07-28 17:14:49  E:\\test\\20130627_183008(1)Hongten.jpg  2315326\n', '2013-07-28 17:14:49  E:\\test\\20130627_183054Hongten.jpg  2672977\n', '2013-07-28 17:14:49  E:\\test\\20130627_183059Hongten.jpg  2006608\n', '2013-07-28 17:14:49  E:\\test\\20130627_183101Hongten.jpg  2076974\n', '2013-07-28 17:14:49  E:\\test\\20130627_183116Hongten.jpg  2687018\n', '2013-07-28 17:14:49  E:\\test\\20130627_183326Hongten.jpg  1993448\n', '2013-07-28 17:14:49  E:\\test\\20130627_183714Hongten.jpg  2497973\n', '2013-07-28 17:14:49  E:\\test\\20130627_183749Hongten.jpg  2066327\n', '2013-07-28 17:14:49  E:\\test\\20130627_183925Hongten.jpg  2037776\n', '2013-07-28 17:14:49  E:\\test\\20130627_203658Hongten.jpg  3033996\n', '2013-07-28 17:14:49  E:\\test\\20130627_203802Hongten.jpg  2837396\n', '2013-07-28 17:14:49  E:\\test\\20130627_205112(1)Hongten.jpg  2987659\n', '2013-07-28 17:14:49  E:\\test\\20130627_205131Hongten.jpg  2745724\n', '2013-07-28 17:14:49  E:\\test\\20130627_205159Hongten.jpg  2824810\n', '2013-07-28 17:14:49  E:\\test\\20130627_205219(1)Hongten.jpg  2864744\n', '2013-07-28 17:14:49  E:\\test\\20130627_205257Hongten.jpg  3092656\n', '2013-07-28 17:14:49  E:\\test\\20130627_205315Hongten.jpg  2832393\n', '2013-07-28 17:14:49  E:\\test\\20130627_205408(1)Hongten.jpg  2796261\n', '2013-07-28 17:14:49  E:\\test\\20130627_205425Hongten.jpg  3295286\n', '2013-07-28 17:14:49  E:\\test\\20130627_205627Hongten.jpg  2819717\n', '2013-07-28 17:14:49  E:\\test\\20130627_205629Hongten.jpg  2813522\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_140132Hongten.jpg  2571032\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_182913(1)Hongten.jpg  2380747\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183008(1)Hongten.jpg  2315326\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183054Hongten.jpg  2672977\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183059Hongten.jpg  2006608\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183101Hongten.jpg  2076974\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183116Hongten.jpg  2687018\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183326Hongten.jpg  1993448\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183714Hongten.jpg  2497973\n', '2013-07-28 17:14:49  E:\\test\\hongten\\6.27\\20130627_183749Hongten.jpg  2066327\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_183925Hongten.jpg  2037776\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_203658Hongten.jpg  3033996\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_203802Hongten.jpg  2837396\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205112(1)Hongten.jpg  2987659\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205131Hongten.jpg  2745724\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205159Hongten.jpg  2824810\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205219(1)Hongten.jpg  2864744\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205257Hongten.jpg  3092656\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205315Hongten.jpg  2832393\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205408(1)Hongten.jpg  2796261\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205425Hongten.jpg  3295286\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205627Hongten.jpg  2819717\n', '2013-07-28 17:14:50  E:\\test\\hongten\\6.27\\20130627_205629Hongten.jpg  2813522\n']
##################################################
开始写入信息...
##################################################
开始读取信息...
2013-07-28 17:14:49  E:\test\20130627_140132Hongten.jpg  0
2013-07-28 17:14:49  E:\test\20130627_182913(1)Hongten.jpg  2380747
2013-07-28 17:14:49  E:\test\20130627_183008(1)Hongten.jpg  2315326
2013-07-28 17:14:49  E:\test\20130627_183054Hongten.jpg  2672977
2013-07-28 17:14:49  E:\test\20130627_183059Hongten.jpg  2006608
2013-07-28 17:14:49  E:\test\20130627_183101Hongten.jpg  2076974
2013-07-28 17:14:49  E:\test\20130627_183116Hongten.jpg  2687018
2013-07-28 17:14:49  E:\test\20130627_183326Hongten.jpg  1993448
2013-07-28 17:14:49  E:\test\20130627_183714Hongten.jpg  2497973
2013-07-28 17:14:49  E:\test\20130627_183749Hongten.jpg  2066327
2013-07-28 17:14:49  E:\test\20130627_183925Hongten.jpg  2037776
2013-07-28 17:14:49  E:\test\20130627_203658Hongten.jpg  3033996
2013-07-28 17:14:49  E:\test\20130627_203802Hongten.jpg  2837396
2013-07-28 17:14:49  E:\test\20130627_205112(1)Hongten.jpg  2987659
2013-07-28 17:14:49  E:\test\20130627_205131Hongten.jpg  2745724
2013-07-28 17:14:49  E:\test\20130627_205159Hongten.jpg  2824810
2013-07-28 17:14:49  E:\test\20130627_205219(1)Hongten.jpg  2864744
2013-07-28 17:14:49  E:\test\20130627_205257Hongten.jpg  3092656
2013-07-28 17:14:49  E:\test\20130627_205315Hongten.jpg  2832393
2013-07-28 17:14:49  E:\test\20130627_205408(1)Hongten.jpg  2796261
2013-07-28 17:14:49  E:\test\20130627_205425Hongten.jpg  3295286
2013-07-28 17:14:49  E:\test\20130627_205627Hongten.jpg  2819717
2013-07-28 17:14:49  E:\test\20130627_205629Hongten.jpg  2813522
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_140132Hongten.jpg  2571032
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_182913(1)Hongten.jpg  2380747
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183008(1)Hongten.jpg  2315326
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183054Hongten.jpg  2672977
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183059Hongten.jpg  2006608
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183101Hongten.jpg  2076974
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183116Hongten.jpg  2687018
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183326Hongten.jpg  1993448
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183714Hongten.jpg  2497973
2013-07-28 17:14:49  E:\test\hongten\6.27\20130627_183749Hongten.jpg  2066327
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_183925Hongten.jpg  2037776
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_203658Hongten.jpg  3033996
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_203802Hongten.jpg  2837396
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205112(1)Hongten.jpg  2987659
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205131Hongten.jpg  2745724
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205159Hongten.jpg  2824810
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205219(1)Hongten.jpg  2864744
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205257Hongten.jpg  3092656
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205315Hongten.jpg  2832393
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205408(1)Hongten.jpg  2796261
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205425Hongten.jpg  3295286
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205627Hongten.jpg  2819717
2013-07-28 17:14:50  E:\test\hongten\6.27\20130627_205629Hongten.jpg  2813522
##################################################
搜索文件夹总数:4,文件总数:50
符合要求的文件总数:46,不符合要求的文件总数:4
>>>

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python用模块pytz来转换时区
Aug 19 Python
Python自动化运维和部署项目工具Fabric使用实例
Sep 18 Python
Python 40行代码实现人脸识别功能
Apr 02 Python
分析Python读取文件时的路径问题
Feb 11 Python
python实现SOM算法
Feb 23 Python
python 对多个csv文件分别进行处理的方法
Jan 07 Python
浅谈pyqt5在QMainWindow中布局的问题
Jun 21 Python
python中的decimal类型转换实例详解
Jun 26 Python
Python 使用 PyMysql、DBUtils 创建连接池提升性能
Aug 14 Python
基于Django实现日志记录报错信息
Dec 17 Python
python的help函数如何使用
Jun 11 Python
python如何设置静态变量
Sep 07 Python
Python和JavaScript间代码转换的4个工具
Feb 22 #Python
python实现识别相似图片小结
Feb 22 #Python
python脚本设置系统时间的两种方法
Feb 21 #Python
python脚本设置超时机制系统时间的方法
Feb 21 #Python
Go语言基于Socket编写服务器端与客户端通信的实例
Feb 19 #Python
使用C#配合ArcGIS Engine进行地理信息系统开发
Feb 19 #Python
Python中使用OpenCV库来进行简单的气象学遥感影像计算
Feb 19 #Python
You might like
JSON在PHP中的应用介绍
2012/09/08 PHP
php计算数组不为空元素个数的方法
2014/01/27 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
Symfony2之session与cookie用法小结
2016/03/18 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
YII框架常用技巧总结
2019/04/27 PHP
经常用的图片在容器中的水平垂直居中实例
2007/06/10 Javascript
从阶乘函数对比Javascript和C#的异同
2012/05/31 Javascript
jquery简单实现滚动条下拉DIV固定在头部不动
2013/11/25 Javascript
关于jquery中全局函数each使用介绍
2013/12/10 Javascript
通过隐藏iframe实现文件下载的js方法介绍
2014/02/26 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
JavaScript中的普通函数与构造函数比较
2015/04/07 Javascript
再谈JavaScript异步编程
2016/01/27 Javascript
遍历js中对象的属性和值的实例
2016/11/21 Javascript
js实现选项卡内容切换以及折叠和展开效果【推荐】
2017/01/08 Javascript
Node.js使用gm拼装sprite图片
2017/07/04 Javascript
echarts学习笔记之箱线图的分析与绘制详解
2017/11/22 Javascript
JS 使用 window对象的print方法实现分页打印功能
2018/05/16 Javascript
实例分析vue循环列表动态数据的处理方法
2018/09/28 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
在Python中使用sort()方法进行排序的简单教程
2015/05/21 Python
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
python pandas实现excel转为html格式的方法
2018/10/23 Python
python调用API接口实现登陆短信验证
2020/05/10 Python
Pycharm学生免费专业版安装教程的方法步骤
2020/09/24 Python
购买澳大利亚最好的服装和内衣在线:BONDS
2016/10/14 全球购物
RetroStage德国:复古服装
2019/02/03 全球购物
Carolina工作鞋官网:Carolina Footwear
2019/03/14 全球购物
法学个人求职信范文
2014/01/27 职场文书
长城导游词400字
2015/01/30 职场文书
海底两万里读书笔记
2015/06/26 职场文书
国庆节主题班会
2015/08/15 职场文书
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript
shell进度条追踪指令执行时间的场景分析
2022/06/16 Servers