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

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

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

今天突发奇想,用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开发_搜索本地文件信息写入文件的更多相关文章

  1. python开发_thread_线程_搜索本地文件

    在之前的blog中,曾经写到过关于搜索本地文件的技术文章 如: java开发_快速搜索本地文件_小应用程序 python开发_搜索本地文件信息写入文件 下面说说python中关于线程来搜索本地文件 利 ...

  2. Python开发【第三章】:文件操作

    一.文件操作模式概述 1.打开文件的模式: r, 只读模式[默认] w,只写模式[不可读:不存在则创建:存在则删除内容:] a, 追加模式[不可读:不存在则创建:存在则只追加内容:] 2." ...

  3. python开发_++i,i += 1的区分

    python开发_++i,i += 1的区分 在很多编程语言(C/C++,Java等)中我们都会碰到这样的语法: 1 int i = 0; 2 ++ i; // -- i; 这样的语法在上述编程语言中 ...

  4. Python爬虫之利用BeautifulSoup爬取豆瓣小说(三)——将小说信息写入文件

    #-*-coding:utf-8-*- import urllib2 from bs4 import BeautifulSoup class dbxs: def __init__(self): sel ...

  5. java将错误信息写入文件

    第一种办法可以通过字符串,也就是先把错误信息写入字符串,再将字符串写入文件 import java.io.*; public class Demo { public static void main( ...

  6. python开发_常用的python模块及安装方法

    adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...

  7. Python开发【第六篇】:文件处理

    1. 文件   文件处理流程: 打开文件,获得文件句柄,并赋值 通过句柄对文件进行操作 关闭文件 1.1 打开文件   在 Python 中使用 open()函数打开文件,并返回文件对象: open( ...

  8. Python开发【第6节】【文件操作】

    1.基本文件操作 open() 打开或者创建一个文件 格式:open('文件路径','打开模式') 返回值:文件io对象 打开模式一共N种: w模式 写模式write 文件不存在时会创建文件,如果文件 ...

  9. 小白学开发(iOS)OC_ 字符串写入文件(2015-08-13)

    // //  main.m //  字符串写入文件 // //  Created by admin on 15/8/13. //  Copyright (c) 2015年 admin. All rig ...

随机推荐

  1. linux下subversion的安装

    第一章 安装 这里以RHEL5下安装subversion-1.6.6,为例 1. 下载源码包 在http://archive.apache.org/dist/subversion/网站下载 subve ...

  2. 图片轮播器——jquery插件

    下载:http://files.cnblogs.com/files/wordblog/jiaoben828.rar

  3. JavaScript 判断手机端访问并跳转 redirect mobile

    假如你的手机端网站在 /m 目录下 (function(a,b){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer| ...

  4. CRF++进行中文分词实例

    工具包:https://taku910.github.io/crfpp/#tips 语料:http://sighan.cs.uchicago.edu/bakeoff2005/ 安装: 1)下载linu ...

  5. linux kernel make构建分析

    前言 之前对uboot的构建进行了分析,现在再对linux kernel的构建进行分析.几年前的确也分析过,但是只是停留在笔记层面,没有转为文章,这次下定决定来完善它. 环境 同样,采用的还是zynq ...

  6. python基础===15条变量&方法命名的最佳实践

    不同的代码段采用不同的命名长度.通常来说,循环计数器(loop counters)采用1位的单字符来命名,循环判断变量(condition/loop variables)采用1个单词来命名,方法采用1 ...

  7. 浅谈Java中的hashcode方法(转)

    原文链接:http://www.cnblogs.com/dolphin0520/p/3681042.html 浅谈Java中的hashcode方法 哈希表这个数据结构想必大多数人都不陌生,而且在很多地 ...

  8. centos6.5 使用 rpm 安装 mysql

    从mysql网站下载mysql rpm安装包(包括server.client) 1.安装server rpm -ivh MySQL-server-5.6.19-1.el6.x86_64.rpm 强制安 ...

  9. python【项目】:基于socket的FTP服务器

    功能要求 1. 用户加密认证 2. 服务端采用 SocketServer实现,支持多客户端连接 3. 每个用户有自己的家目录且只能访问自己的家目录 4. 对用户进行磁盘配额.不同用户配额可不同 5. ...

  10. LightOJ 1074 Extended Traffic(spfa+dfs标记负环上的点)

    题目链接:https://cn.vjudge.net/contest/189021#problem/O 题目大意:有n个站点,每个站点都有一个busyness,从站点A到站点B的花费为(busynes ...