python开发_搜索本地文件信息写入文件
功能:
#在指定的盘符,如D盘,搜索出与用户给定后缀名(如:jpg,png)相关的文件
#然后把搜索出来的信息(相关文件的绝对路径),存放到用户指定的
#文件(如果文件不存在,则建立相应的文件)中
之前用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开发_搜索本地文件信息写入文件的更多相关文章
- python开发_thread_线程_搜索本地文件
在之前的blog中,曾经写到过关于搜索本地文件的技术文章 如: java开发_快速搜索本地文件_小应用程序 python开发_搜索本地文件信息写入文件 下面说说python中关于线程来搜索本地文件 利 ...
- Python开发【第三章】:文件操作
一.文件操作模式概述 1.打开文件的模式: r, 只读模式[默认] w,只写模式[不可读:不存在则创建:存在则删除内容:] a, 追加模式[不可读:不存在则创建:存在则只追加内容:] 2." ...
- python开发_++i,i += 1的区分
python开发_++i,i += 1的区分 在很多编程语言(C/C++,Java等)中我们都会碰到这样的语法: 1 int i = 0; 2 ++ i; // -- i; 这样的语法在上述编程语言中 ...
- Python爬虫之利用BeautifulSoup爬取豆瓣小说(三)——将小说信息写入文件
#-*-coding:utf-8-*- import urllib2 from bs4 import BeautifulSoup class dbxs: def __init__(self): sel ...
- java将错误信息写入文件
第一种办法可以通过字符串,也就是先把错误信息写入字符串,再将字符串写入文件 import java.io.*; public class Demo { public static void main( ...
- python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheetahcherrypy:一个WEB frameworkctype ...
- Python开发【第六篇】:文件处理
1. 文件 文件处理流程: 打开文件,获得文件句柄,并赋值 通过句柄对文件进行操作 关闭文件 1.1 打开文件 在 Python 中使用 open()函数打开文件,并返回文件对象: open( ...
- Python开发【第6节】【文件操作】
1.基本文件操作 open() 打开或者创建一个文件 格式:open('文件路径','打开模式') 返回值:文件io对象 打开模式一共N种: w模式 写模式write 文件不存在时会创建文件,如果文件 ...
- 小白学开发(iOS)OC_ 字符串写入文件(2015-08-13)
// // main.m // 字符串写入文件 // // Created by admin on 15/8/13. // Copyright (c) 2015年 admin. All rig ...
随机推荐
- weblogic性能监控
1.
- 初识PDO数据库抽象层
目录: 00x1 php中的pdo是什么? 00x2 pdo创建一个PDO对象 00x1 php中的pdo是什么? 就是操作数据库的方法,pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验 ...
- dlmalloc(一)【转】
转自:http://blog.csdn.net/ycnian/article/details/12971863 我们写过很多C程序了,经常会分配内存.记得刚学C语言时老师说过,可以向两个地方申请内存: ...
- java中String的==和equals的区别
首先看代码1: public static void main(String[] args) { List<String> list=new ArrayList<String> ...
- git中如何查看一个文件的修改(更新)历史
有些时候有些文件或文件夹被移除了, 或者更换了路径或被改名了, 想跟踪一下这个文件被修改(更新)的历史, 可以用如下命令: git log -p matser -- filename 格式是: git ...
- Spring Cloud Feign 在调用接口类上,配置熔断 fallback后,输出异常
Spring Cloud Feign 在调用接口类上,配置熔断 fallback后,出现请求异常时,会进入熔断处理,但是不会抛出异常信息. 经过以下配置,可以抛出异常: 将原有ErrorEncoder ...
- request机制
每个框架中都有处理请求的机制(request),但是每个框架的处理方式和机制是不同的 为了了解Flask的request中都有什么东西,首先我们要写一个前后端的交互 基于HTML + Flask 写一 ...
- LightOJ 1074 Extended Traffic(spfa+dfs标记负环上的点)
题目链接:https://cn.vjudge.net/contest/189021#problem/O 题目大意:有n个站点,每个站点都有一个busyness,从站点A到站点B的花费为(busynes ...
- Python+Selenium 自动化实现实例-单元测试报告
代码如下: # -*- coding: utf-8 -*- from selenium import webdriver import unittest,time import HTMLTestRun ...
- Effective C++学习进阶版
记得前段时间又一次拿起<Effective C++>的时候,有种豁然开朗的感觉,所以翻出了我第一遍读时做的笔记.只做参考以及查阅之用.如有需要请参阅<Effective C++> ...