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实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
Python字符和字符值(ASCII或Unicode码值)转换方法
May 21 Python
Python编程中的文件操作攻略
Oct 16 Python
Python实现优先级队列结构的方法详解
Jun 02 Python
Python 'takes exactly 1 argument (2 given)' Python error
Dec 13 Python
pandas.loc 选取指定列进行操作的实例
May 18 Python
python采集微信公众号文章
Dec 20 Python
微信小程序python用户认证的实现
Jul 29 Python
linux下python中文乱码解决方案详解
Aug 28 Python
Matplotlib scatter绘制散点图的方法实现
Jan 02 Python
python 如何利用argparse解析命令行参数
Sep 11 Python
如何用python反转图片,视频
Apr 24 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
自动跳转中英文页面
2006/10/09 PHP
php全局变量和类配合使用深刻理解
2013/06/05 PHP
destoon调用企业会员公司形象图片的实现方法
2014/08/21 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php.ini中date.timezone设置详解
2016/11/20 PHP
jquery中对表单的基本操作代码
2010/07/29 Javascript
通过JavaScript控制字体大小的代码
2011/10/04 Javascript
通过下拉框的值来确定输入框是否可以为空的代码
2011/10/18 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
jquery插件bxslider用法实例分析
2015/04/16 Javascript
基于javascript实现彩票随机数生成(升级版)
2020/04/17 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
原生js实现放大镜特效
2017/03/08 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
Jquery EasyUI $.Parser
2017/06/02 jQuery
JS失效 提示HTML1114: (UNICODE 字节顺序标记)的代码页 utf-8 覆盖(META 标记)的冲突的代码页 utf-8
2017/06/23 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
Python中的ConfigParser模块使用详解
2015/05/04 Python
详解Python发送邮件实例
2016/01/10 Python
Python实现根据日期获取当天凌晨时间戳的方法示例
2019/04/09 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
python GUI库图形界面开发之PyQt5中QWebEngineView内嵌网页与Python的数据交互传参详细方法实例
2020/02/26 Python
用Python实现职工信息管理系统
2020/12/30 Python
诗狄娜化妆品官方网站:Stila Cosmetics
2016/12/21 全球购物
小学毕业典礼主持词
2014/03/27 职场文书
推荐信格式范文
2014/05/09 职场文书
个人委托书怎么写
2014/09/17 职场文书
加强机关作风建设心得体会
2014/10/22 职场文书
影视后期实训报告
2014/11/05 职场文书
万里长城导游词
2015/01/30 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
学校教学工作总结2015
2015/05/19 职场文书
幽灵公主观后感
2015/06/09 职场文书
javascript代码简写的几种常用方式汇总
2021/08/23 Javascript
el-table-column 内容不自动换行的解决方法
2022/08/14 Vue.js