Python - 搜索字符串是否在文件中

时间:2014-05-19 17:09:54

标签: python string search wxpython

我想在文件中搜索字符串,如果有字符串make动作,如果没有字符串进行其他操作,但是从这段代码:

    itcontains = self.textCtrl2.GetValue()
    self.textCtrl.AppendText("\nTY: " + itcontains)
    self.textCtrl2.Clear()
    pztxtflpath = "TCM/Zoznam.txt"
    linenr = 0
    with open(pztxtflpath) as f:
        found = False
        for line in f:
            if re.search("\b{0}\b".format(itcontains),line):
                hisanswpath = "TCM/" + itcontains + ".txt"
                hisansfl = codecs.open(hisanswpath, "r")
                textline = hisansfl.readline()
                linenr = 0
                ans = ""
                while textline <> "":
                    linenr += 1
                    textline = hisansfl.readline()
                hisansfl.close()
                rnd = random.randint(1, linenr) - 1
                hisansfl = codecs.open(pztxtflpath, "r")
                textline = hisansfl.readline()
                linenr = 0
                pzd = ""
                while linenr <> rnd:
                    textline = hisansfl.readline()
                    linenr += 1
                ans = textline
                hisansfl.close()
                self.textCtrl.AppendText("\nTexter: " + ans)
        if not found:
            self.textCtrl.AppendText("\nTexter: " + itcontains)
            wrtnw = codecs.open(pztxtflpath, "a")
            wrtnw.write("\n" + itcontains)
            wrtnw.close

如果没有那个字符串它正在工作,但如果有那个字符串,我正在搜索它会使得如果找不到动作。我真的不知道如何解决它,我已经尝试过其他网站的一些代码,但在我的代码中它不起作用。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

如果字符串包含您要查找的内容,您是否说下面的 if 语句下面的代码会执行?

 if re.search("\b{0}\b".format(itcontains),line):

如果是这样,那么您只需要将以下内容添加到此语句下面的代码块中:

found = True

这将使您的 if not found 子句保持运行状态。如果您要查找的字符串只能找到一次,我还会在您的第一个语句中添加 break 语句以打破循环。