python 寻找找文件_快速寻找文件(Python)

#!/usr/bin/env python

#-*- coding: utf-8 -*-import os

import reclassQuickSearchFile:'''快速寻找文件'''def file_name_search(self, file_dir_path, keyword):'''文件名字匹配'''search_result_array=[]for root, dirs, files inos.walk(file_dir_path):

# root 表示当前正在访问的文件夹路径

# dirs 表示该文件夹下的子目录名list

# files 表示该文件夹下的文件list

# 针对当前目录for file_name infiles:ifre.search(keyword, file_name):

search_result= os.path.join(root, file_name).replace('\\', '/')

search_result_array.append(search_result)returnsearch_result_array

def file_content_search(self, file_dir_path, keyword):'''文件内容匹配'''search_result_array=[]for root, dirs, files inos.walk(file_dir_path):for file_name infiles:

file_path=os.path.join(root, file_name)

print('----- 正在检索{} -----'.format(file_path))try:

with open(file_path,'rb') asf:

content= f.read().decode("utf8", 'ignore') # utf-8, gbk

f.close()

# 匹配ifre.search(keyword, content):

search_result_array.append(file_path.replace('\\', '/'))

except Exceptionase:

print('---- file_path: {} 不是可打开的文件 -----'.format(file_path))returnsearch_result_arrayif __name__ == '__main__':

obj=QuickSearchFile()

search_file_type= input('1: file_content(文件内容匹配), 2: file_name(文件名称匹配) 请输入搜索文件类型[1-2]:')whileTrue:if str(search_file_type) in ['1', '2']:

file_dir_path= input('请输入搜索文件所在的目录:')if not file_dir_path: file_dir_path = '/data/strategy/redis2mysql4decompression'# 测试

keyword= input('请输入需要搜索的内容:')if str(search_file_type) == '1':

search_result_array=obj.file_content_search(file_dir_path, keyword)

print('返回结果: 关键字keyword: {}, 所在的所有文件列表: {}'.format(keyword, search_result_array))

elif str(search_file_type)== '2':

search_result_array=obj.file_name_search(file_dir_path, keyword)

print('返回结果: 关键字keyword: {}, 所在的所有文件列表: {}'.format(keyword, search_result_array))else:

print('请重新输入, 选择[1-2]')

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值