如何用Python实现在文件夹下查找一个关键词

Python024

如何用Python实现在文件夹下查找一个关键词,第1张

#!/usr/bin/python

#coding:utf8

import os

#判断文件中是否包含关键字,是则将文件路径打印出来

def is_file_contain_word(file_list, query_word):

for _file in file_list:

if query_word in open(_file).read():

print _file

print("Finish searching.")

#返回指定目录的所有文件(包含子目录的文件)

def get_all_file(floder_path):

file_list = []

if floder_path is None:

raise Exception("floder_path is None")

for dirpath, dirnames, filenames in os.walk(floder_path):

for name in filenames:

file_list.append(dirpath + '\\' + name)

return file_list

query_word = raw_input("Please input the key word that you want to search:")

basedir = raw_input("Please input the directory:")

is_file_contain_word(get_all_file(basedir), query_word)

raw_input("Press Enter to quit.")

请采纳

用jieba做分词,用wordcloud包做词云就可以了

# 读取文件内容

file = 'd:/艾萨克·阿西莫夫/奇妙的航程.TXT'

f = open(file, 'r', encoding='gbk')

text = f.read()

f.close()

# 使用jieba分词,因为wordcloud是以空格识别单词边界的

import jieba

text = ' '.join(jieba.cut(text))

# 掩码图片,单色图就好

from scipy.misc import imread

color_mask = imread('D:/Pictures/7218.png')

# 建立词云对象,因为是中文,指定一个中文字体,不然可能会乱码

# WordCloud的参数可以控制很多内容,请自行阅读包的文档

import wordcloud

w = wordcloud.WordCloud(font_path='C:/Windows/Fonts/msyh.ttc',

                        max_words=100,

                        mask=color_mask)

# 载入以空格分词的字符串

w.generate(text)

# 生成图片

w.to_file('d:/img1.png')

清理用户输入

对输入的的值进行清理处理,是常见的程序要求。比如要做大小写转化、要验证输入字符的注入,通常可以通过写正则用Regex来做专项任务。但是对于复杂的情况,可以用一些技巧,比如下面:

user_input = "This\nstring has\tsome whitespaces...\r\n"

character_map = {

ord('\n') : ' ',

ord('\t') : ' ',

ord('\r') : None

}

在此示例中,可以看到空格字符"\n"和"\t"都被替换为空格,而 "\r"被删除。

这是一个简单的示例,我们还可以使用unicodedata包和combinin()函数来生成大的映射表,以生成映射来替换字符串。

提示用户输入

命令行工具或脚本需要输入用户名和密码才能操作。要用这个功能,一个很有用的技巧是使用getpass模块:

import getpass

user = getpass.getuser()

password = getpass.getpass()

这三行代码就可以让我们优雅的交互提醒用户输入输入密码并捕获当前的系统用户和输入的密码,而且输入密码时候会自动屏蔽显示,以防止被人窃取。

查找字符串频率

如果需要使用查找类似于某些输入字符串的单词,可以使用difflib来实现:

import difflib

difflib.get_close_matches('appel', ['ape', 'apple', 'peach', 'puppy'], n=2)

# 返回['apple', 'ape']

difflib.get_close_matches会查找相似度最匹配的字串。本例中,第一个参数与第二个参数匹配。提供可选参数n,该参数指定要返回的最大匹配数,以及参数cutoff(默认值为0.6)设置为thr确定匹配字符串的分数。

关于Python编程常用技巧,青藤小编就和您分享到这里了。如果您对python编程有浓厚的兴趣,希望这篇文章可以为您提供帮助。如果您还想了解更多关于python编程的技巧及素材等内容,可以点击本站的其他文章进行学习。