How do I match a word in a text file using python?

感情迁移 提交于 2019-12-10 07:01:14

问题


I want to search and match a particular word in a text file.

with open('wordlist.txt', 'r') as searchfile:
        for line in searchfile:
            if word in line:
                    print line

This code returns even the words that contain substrings of the target word. For example if the word is "there" then the search returns "there", "therefore", "thereby", etc.

I want the code to return only the lines which contain "there". Period.


回答1:


split the line into tokens: if word in line.split():




回答2:


import re

file = open('wordlist.txt', 'r')

for line in file.readlines():
    if re.search('^there$', line, re.I):
        print line

The re.search function scans the string line and returns true if it finds the regular expression defined in the first parameter, ignoring case with re.I. The ^ character means 'beginning of the line' while the $ character means 'end of the line'. Therefore, the search function will only return true if it matches there preceded by the beginning of the line, and followed by the end of the line, aka isolated on its own.




回答3:


You can always use regex, something along the lines of:

import re

with open('wordlist.txt', 'r') as searchfile:
        for line in searchfile:
            if re.search( r'\sthere\s', line, re.M|re.I):
                    print line
  • \sthere\s - any space followed by 'there' followed by any space
  • re.I - means case insensitive
  • re.M - doesn't really matter in this case (since lines only have 1 \n)



回答4:


You ought to use a regular expression. The regular expression howto from the Python docs might be a good place to start.




回答5:


Look up the re module (regular expressions). re.search with the regex ' there ' is what you want.



来源:https://stackoverflow.com/questions/5228448/how-do-i-match-a-word-in-a-text-file-using-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!