zoukankan      html  css  js  c++  java
  • python开发_搜索本地文件信息写入文件

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

    之前用java写过这样的一个小程序:

    java开发_快速搜索本地文件_小应用程序

    今天突发奇想,用python写了一个类似的小程序。

    先卡看运行效果吧:

    运行效果的前部分:

    运行效果的后部分:

    写入信息后的文件:

    =======================================================

    代码部分:

    =======================================================

      1 #在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件
      2 #然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的
      3 #文件(如果文件不存在,则建立相应的文件)中
      4 
      5 import os
      6 import time
      7 
      8 #指定盘符
      9 DESK = 'E:\'
     10 
     11 #信息保存文件的路径
     12 ##########        这里请先建立好此文件,我在做文件操作的过程中
     13 ##########        使用os.mknod('E:\info.txt'),系统不会建立文件的
     14 SAVE_FILE = 'E:\info.txt'
     15 
     16 #文件后缀类型
     17 FILE_EXT = ['bmp','jpeg','gif','psd','png','jpg']
     18 
     19 #定义全局变量
     20 my_dirs = []
     21 my_files = []
     22 #文件个数
     23 FILES_NUMBER = 0
     24 #符合要求的文件个数
     25 RIGHT_FILES_NUMBER = 0
     26 #不符合要求的文件个数
     27 NOT_RIGHT_FILES_NUMBER = 0
     28 #文件夹个数
     29 DIR_NUMBER = 0
     30 
     31 
     32 #获取指定文件夹下面的所有文件及文件夹
     33 #如果指定的文件夹不存在,则返回相应的提示信息
     34 def listdir(dir_path):
     35     if os.path.exists(dir_path):
     36         return os.listdir(dir_path)
     37     else:
     38         return '目录'+ dir_path + '不存在'
     39 
     40 #搜索文件主函数
     41 def search_files(path,name):
     42     if not os.path.isdir(path) and not os.path.isfile(path):
     43         return False
     44     path = os.path.join(path,name)
     45     if os.path.isfile(path):  #是文件
     46         global FILES_NUMBER
     47         FILES_NUMBER = FILES_NUMBER + 1
     48         lists = path.split('.')
     49         #print('============================================',lists)
     50         file_ext = lists[-1]  #文件扩展名
     51         if file_ext in FILE_EXT:
     52             global RIGHT_FILES_NUMBER
     53             RIGHT_FILES_NUMBER = RIGHT_FILES_NUMBER + 1
     54             global my_files
     55             now =  str(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())))
     56             size = str(get_file_size(path))
     57             my_files.append(now+'    '+path+'    '+size+'
    ')
     58             print('文件:',path)
     59         else:
     60             global NOT_RIGHT_FILES_NUMBER
     61             NOT_RIGHT_FILES_NUMBER = NOT_RIGHT_FILES_NUMBER + 1
     62     elif os.path.isdir(path): #是文件夹
     63         global DIR_NUMBER
     64         DIR_NUMBER = DIR_NUMBER + 1
     65         for name in listdir(path):
     66             #print(os.path.join(path,name))
     67             search_files(path,name)
     68 
     69 
     70 #获取文件大小
     71 def get_file_size(path):
     72     if os.path.exists(path):
     73         return os.path.getsize(path)
     74     
     75 #写入信息
     76 def write_info(content):
     77     if os.path.exists(path):
     78         with open(SAVE_FILE,'w+') as fp:
     79             fp.write(content)
     80             fp.flush()
     81             fp.close()
     82     else:
     83         print('文件:{}不存在!'.format(SAVE_FILE))
     84 
     85 
     86 #读取所有信息
     87 def read_info():
     88     if os.path.exists(path):
     89         with open(SAVE_FILE,'r+') as fp:
     90             for line in fp:
     91                 print(line)
     92     else:
     93         print('文件:{}不存在!'.format(SAVE_FILE))
     94     
     95 if __name__ == '__main__':
     96     for d in listdir(DESK):
     97         my_dirs.append(os.path.join(DESK,d))
     98     print(my_dirs)
     99     #这里是做测试用的,由于扫描整个盘符涉及到的文件和文件夹很多,可能要花一定的时间
    100     #所以这里可以使用一个文件夹作为测试
    101     my_dir = ['E:\test']
    102     for path in my_dir:
    103         search_files(path,'')
    104     print('#' * 50)
    105     print(my_files)
    106     print('#' * 50)
    107     print('开始写入信息...')
    108     content = ''.join(my_files)
    109     write_info(content)
    110     print('#' * 50)
    111     print('开始读取信息...')
    112     read_info()
    113     print('#' * 50)
    114     print('搜索文件夹总数:{0},文件总数:{1}'.format(DIR_NUMBER,FILES_NUMBER))
    115     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:	est20130627_140132Hongten.jpg
    文件: E:	est20130627_182913(1)Hongten.jpg
    文件: E:	est20130627_183008(1)Hongten.jpg
    文件: E:	est20130627_183054Hongten.jpg
    文件: E:	est20130627_183059Hongten.jpg
    文件: E:	est20130627_183101Hongten.jpg
    文件: E:	est20130627_183116Hongten.jpg
    文件: E:	est20130627_183326Hongten.jpg
    文件: E:	est20130627_183714Hongten.jpg
    文件: E:	est20130627_183749Hongten.jpg
    文件: E:	est20130627_183925Hongten.jpg
    文件: E:	est20130627_203658Hongten.jpg
    文件: E:	est20130627_203802Hongten.jpg
    文件: E:	est20130627_205112(1)Hongten.jpg
    文件: E:	est20130627_205131Hongten.jpg
    文件: E:	est20130627_205159Hongten.jpg
    文件: E:	est20130627_205219(1)Hongten.jpg
    文件: E:	est20130627_205257Hongten.jpg
    文件: E:	est20130627_205315Hongten.jpg
    文件: E:	est20130627_205408(1)Hongten.jpg
    文件: E:	est20130627_205425Hongten.jpg
    文件: E:	est20130627_205627Hongten.jpg
    文件: E:	est20130627_205629Hongten.jpg
    文件: E:	esthongten6.2720130627_140132Hongten.jpg
    文件: E:	esthongten6.2720130627_182913(1)Hongten.jpg
    文件: E:	esthongten6.2720130627_183008(1)Hongten.jpg
    文件: E:	esthongten6.2720130627_183054Hongten.jpg
    文件: E:	esthongten6.2720130627_183059Hongten.jpg
    文件: E:	esthongten6.2720130627_183101Hongten.jpg
    文件: E:	esthongten6.2720130627_183116Hongten.jpg
    文件: E:	esthongten6.2720130627_183326Hongten.jpg
    文件: E:	esthongten6.2720130627_183714Hongten.jpg
    文件: E:	esthongten6.2720130627_183749Hongten.jpg
    文件: E:	esthongten6.2720130627_183925Hongten.jpg
    文件: E:	esthongten6.2720130627_203658Hongten.jpg
    文件: E:	esthongten6.2720130627_203802Hongten.jpg
    文件: E:	esthongten6.2720130627_205112(1)Hongten.jpg
    文件: E:	esthongten6.2720130627_205131Hongten.jpg
    文件: E:	esthongten6.2720130627_205159Hongten.jpg
    文件: E:	esthongten6.2720130627_205219(1)Hongten.jpg
    文件: E:	esthongten6.2720130627_205257Hongten.jpg
    文件: E:	esthongten6.2720130627_205315Hongten.jpg
    文件: E:	esthongten6.2720130627_205408(1)Hongten.jpg
    文件: E:	esthongten6.2720130627_205425Hongten.jpg
    文件: E:	esthongten6.2720130627_205627Hongten.jpg
    文件: E:	esthongten6.2720130627_205629Hongten.jpg
    ##################################################
    ['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
    ']
    ##################################################
    开始写入信息...
    ##################################################
    开始读取信息...
    2013-07-28 17:14:49    E:	est20130627_140132Hongten.jpg    0
    
    2013-07-28 17:14:49    E:	est20130627_182913(1)Hongten.jpg    2380747
    
    2013-07-28 17:14:49    E:	est20130627_183008(1)Hongten.jpg    2315326
    
    2013-07-28 17:14:49    E:	est20130627_183054Hongten.jpg    2672977
    
    2013-07-28 17:14:49    E:	est20130627_183059Hongten.jpg    2006608
    
    2013-07-28 17:14:49    E:	est20130627_183101Hongten.jpg    2076974
    
    2013-07-28 17:14:49    E:	est20130627_183116Hongten.jpg    2687018
    
    2013-07-28 17:14:49    E:	est20130627_183326Hongten.jpg    1993448
    
    2013-07-28 17:14:49    E:	est20130627_183714Hongten.jpg    2497973
    
    2013-07-28 17:14:49    E:	est20130627_183749Hongten.jpg    2066327
    
    2013-07-28 17:14:49    E:	est20130627_183925Hongten.jpg    2037776
    
    2013-07-28 17:14:49    E:	est20130627_203658Hongten.jpg    3033996
    
    2013-07-28 17:14:49    E:	est20130627_203802Hongten.jpg    2837396
    
    2013-07-28 17:14:49    E:	est20130627_205112(1)Hongten.jpg    2987659
    
    2013-07-28 17:14:49    E:	est20130627_205131Hongten.jpg    2745724
    
    2013-07-28 17:14:49    E:	est20130627_205159Hongten.jpg    2824810
    
    2013-07-28 17:14:49    E:	est20130627_205219(1)Hongten.jpg    2864744
    
    2013-07-28 17:14:49    E:	est20130627_205257Hongten.jpg    3092656
    
    2013-07-28 17:14:49    E:	est20130627_205315Hongten.jpg    2832393
    
    2013-07-28 17:14:49    E:	est20130627_205408(1)Hongten.jpg    2796261
    
    2013-07-28 17:14:49    E:	est20130627_205425Hongten.jpg    3295286
    
    2013-07-28 17:14:49    E:	est20130627_205627Hongten.jpg    2819717
    
    2013-07-28 17:14:49    E:	est20130627_205629Hongten.jpg    2813522
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_140132Hongten.jpg    2571032
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_182913(1)Hongten.jpg    2380747
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183008(1)Hongten.jpg    2315326
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183054Hongten.jpg    2672977
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183059Hongten.jpg    2006608
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183101Hongten.jpg    2076974
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183116Hongten.jpg    2687018
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183326Hongten.jpg    1993448
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183714Hongten.jpg    2497973
    
    2013-07-28 17:14:49    E:	esthongten6.2720130627_183749Hongten.jpg    2066327
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_183925Hongten.jpg    2037776
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_203658Hongten.jpg    3033996
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_203802Hongten.jpg    2837396
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205112(1)Hongten.jpg    2987659
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205131Hongten.jpg    2745724
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205159Hongten.jpg    2824810
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205219(1)Hongten.jpg    2864744
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205257Hongten.jpg    3092656
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205315Hongten.jpg    2832393
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205408(1)Hongten.jpg    2796261
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205425Hongten.jpg    3295286
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205627Hongten.jpg    2819717
    
    2013-07-28 17:14:50    E:	esthongten6.2720130627_205629Hongten.jpg    2813522
    
    ##################################################
    搜索文件夹总数:4,文件总数:50
    符合要求的文件总数:46,不符合要求的文件总数:4
    >>> 
  • 相关阅读:
    oracle中number数据类型简单明了解释
    计算机专业课程体系介绍(含学习顺序)
    浮点数的二进制表示
    C语言中为什么float型数据的范围是3.4E-38~3.4E+38
    C语言学习笔记
    近期学习计划
    二进制、八进制、十进制、十六进制之间转换
    MySQL 字段值为NULL,PHP用json转换,传给js,显示null
    写出float x 与“零值”比较的if语句——一道面试题分析
    BOOL,int,float,指针变量 与“零值”比较的if语句
  • 原文地址:https://www.cnblogs.com/hongten/p/hongten_python_file_info.html
Copyright © 2011-2022 走看看