python开发_搜索本地文件信息写入文件
功能:
#在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件 #然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的 #文件(如果文件不存在,则建立相应的文件)中
之前用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+'\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))
运行控制台情况;
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 >>>