python实现搜索本地文件信息写入文件的方法
admin
2023-07-31 02:32:05
0

本文实例讲述了python实现搜索本地文件信息写入文件的方法。分享给大家供大家参考,具体如下:

主要功能:

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

先卡看运行效果吧:

运行效果的前部分:

运行效果的后部分:

写入信息后的文件:

代码部分:

#在指定的盘符,如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程序设计有所帮助。

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...