设为首页收藏本站

Crossin的编程教室

 找回密码
 立即加入
查看: 32204|回复: 0
打印 上一主题 下一主题

【每日一坑 6】 查找文件内容

[复制链接]

0

主题

0

好友

134

积分

注册会员

Rank: 2

楼主
发表于 2013-12-27 14:27:04 |显示全部楼层

回帖奖励 +5

这题是不是可以拓展成为比较实用的搜索相关文本功能?不同的格式直接用open是不是默认用记事本打开,里面的那些编码有什么价值啊?小的文件夹还行,尝试的搜整个盘系统就会变得非常慢,用时似乎还要很久。
  1. # coding=gbk
  2. import os,fnmatch
  3. def find_txt(root,patterns='*'):#定义主函数,接受目录与所要匹配的拓展名为参数
  4.     list_of_file=[]#列表储存匹配文件路径
  5.     for dirname,subdir,filenames in os.walk(root):#使用os。walk(遍历包括子目录下所有文件),生成三组列表,第一组为当前目录地址,第二组为当下前目录下的文件夹名(没有则返回一个空列表),第三组为当前目录的所有文件
  6.         for i in filenames:#遍历当前目录下的所有文件,每个文件名加上当前文件夹路径,构成完整的文件路径
  7.             file_object='\\'.join([dirname,i])#构造完整目录
  8.             try:
  9.                 f=open(file_object,'r')#打开文件
  10.                 file_content= f.read()#读取文件
  11.                 if key_words in file_content:#判断关键词是否在文件内容内
  12.                     list_of_file.append(file_object)
  13.             finally:
  14.                 f.close()
  15.     return list_of_file
  16. if __name__=='__main__':
  17.     root=raw_input('所要搜索目录:')
  18.     key_words=raw_input('内容关键词:')
  19.     match_files=find_txt(root)
  20.     if match_files:
  21.         print "以下是包含关键词%s的文件"%key_words
  22.         for i in match_files:
  23.             print i
  24.     else:
  25.         print"没有找到相关文件"
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即加入

QQ|手机版|Archiver|Crossin的编程教室 ( 苏ICP备15063769号  

GMT+8, 2024-5-2 23:54 , Processed in 0.026574 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部