【问题标题】:Scanning a text file for a word扫描文本文件中的单词
【发布时间】:2017-08-20 04:21:36
【问题描述】:

我对 python 比较陌生,正在做一个项目来提高我的技能,它是一个文本文件压缩器; 我在文件扫描部分遇到问题,我希望它读取文本文件并找到一个单词。 任何帮助将非常感激。

我的代码:

def check(): 
    datafile = file("res\powerserv 1.txt") 
    for line in datafile: 
        if storage in line: 
            return true 
        else: 
            return false

【问题讨论】:

  • 我试过那个代码已经不行了
  • 如果它不起作用那是因为你没有正确尝试。请在此处发布您的文件和代码,说明您尝试了什么以及为什么它不起作用,以及任何追溯。
  • “没用”是什么意思?为什么它不起作用?它是否显示了错误的数据?程序崩溃了吗?
  • def check(): datafile = file("res\powerserv 1.txt") for line in datafile: if storage in line: return true else: return false

标签: python python-3.x file


【解决方案1】:

您的代码的主要问题是 for 循环中的 return False

假设这是您的文件:

word1
word2
word3

您正在寻找word3。现在,这就是您的程序所做的:

word3 == word1 ? 
No, so break

你需要的是:

word3 == word1 ?
No, next iteration

word3 == word2 ?
No, next iteration

word3 == word3 ?
return True

你的代码应该是这样的:

def check(word): 
    with open("res\powerserv 1.txt") as datafile: 
        for line in datafile: 
            if word in line: 
                return True 

    return False

print(check('your word'))

return False 出现在循环之外。另外,考虑使用with...as 上下文管理器来处理文件的打开和关闭。

【讨论】:

  • 每次都返回false
  • @user8480074 现在看看,我已经修改了你的代码。
  • @user8480074 如果它仍然不起作用,您的文件路径可能是问题所在。试试看:"res\\powerserv 1.txt"
  • 非常感谢你们,完成后我会发布我完成的代码。谢谢你了
猜你喜欢
  • 1970-01-01
  • 2014-02-21
  • 2022-11-18
  • 2017-03-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-10
  • 1970-01-01
相关资源
最近更新 更多