【问题标题】:How to find a word in a string in a list? (Python)如何在列表中的字符串中查找单词? (Python)
【发布时间】:2014-10-24 02:26:48
【问题描述】:

所以我试图找到一种方法,以便我可以读取 txt 文件并找到特定的单词。我一直在用

调用文件
myfile=open('daily.txt','r')

r=myfile.readlines()

这将为文件中的每一行返回一个带有字符串的列表,我想在列表中的一个字符串中找到一个单词。

编辑: 对不起,我的意思是如果有办法找到单词在 txt 文件中的位置,比如 x=myfile[12] x=x[2:6]

【问题讨论】:

标签: python string list


【解决方案1】:
def findLines():
    myWord = 'someWordIWantToSearchFor'
    answer = []
    with open('daily.txt') as myfile:
        lines = myfile.readlines()
    for line in lines:
        if myWord in line:
            answer.append(line)
    return answer

【讨论】:

  • 谢谢,抱歉,我没有在我的主帖中提到这一点,但我希望它返回找到 myWord 的位置
【解决方案2】:
with open('daily.txt') as myfile:
    for line in myfile:
        if "needle" in line:
            print "found it:", line

使用上述方法,您无需一次为整个文件分配内存,一次只需一行。如果您的文件很大,这将更有效率。它还会在with 结尾处自动关闭文件。

【讨论】:

    【解决方案3】:

    我不确定建议的答案是否解决了问题,因为我不确定原始提议者的意思。如果他的真正意思是“单词”而不是“子字符串”,那么解决方案就行不通,因为例如,

    'cat' in line
    

    如果 line 包含单词“catastrophe”,则评估为 True。我认为您可能希望按照以下方式修改这些答案

     if word in line.split():  ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-02
      • 2020-10-29
      • 2016-05-28
      • 1970-01-01
      相关资源
      最近更新 更多