python - Python:查找具有内部空白的子字符串

python - Python:查找具有内部空白的子字符串,第1张

我有一个单词列表。我正在检查文件中是否出现这些单词。这是我的代码:

for word in wordlist:
    print word
    for thefile in filelist:
        handle = open(thefile)
        filecontents = handle.read()
        if word in filecontents:
            print word, 'occurs', "in", thefile
        handle.close()

如果列表中的所有单词都是单个单词,则代码可以正常工作。如果任何单词是短语(即具有内部空格的两个单词,则不起作用。例如,"消息代理")。

我哪里错了?我是Python的新手。

[更新] 这是我的单词列表:

  • 安装
  • postreq
  • 消息代理

代码会报告所有已安装'的文件实例。在他们和' postreq'中,但根本没有为“消息经纪人”报告任何内容。我知道有些文件有这个短语('消息代理')。

最佳答案:

1 个答案:

答案 0 :(得分:0)

错误 与你如何创建wordlist - 你没有展示。也许你用<string>.split()创建它,它在每个空格处分裂。或者您可能正在使用readlines()从文件中读取单词列表,这不会丢弃最终换行符。毫无疑问,如果"message broker"位于您的单词列表中,则匹配包含相同字符序列的任何字符串(单词之间只有一个空格 )。

事实上,如果您正确构建列表,您的代码将 over 响应:它会告诉您“bat”发生在“制造商的重新 bat e“,例如。它的作用,因为它是一个子串。

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
U19学习网站 » python - Python:查找具有内部空白的子字符串