前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python开发_搜索本地文件信息写入文件

python开发_搜索本地文件信息写入文件

作者头像
Hongten
发布2018-09-13 13:49:21
1.7K0
发布2018-09-13 13:49:21
举报
文章被收录于专栏:HongtenHongten
代码语言:javascript
复制
功能:
#在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件
#然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的
#文件(如果文件不存在,则建立相应的文件)中

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

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

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

先卡看运行效果吧:

运行效果的前部分:

运行效果的后部分:

写入信息后的文件:

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

代码部分:

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

代码语言:javascript
复制
  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+'\n')
 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))

运行控制台情况;

代码语言:javascript
复制
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
>>> 
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-07-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云开发 CloudBase
云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档