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