我想在文件中搜索字符串,如果有字符串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
如果没有那个字符串它正在工作,但如果有那个字符串,我正在搜索它会使得如果找不到动作。我真的不知道如何解决它,我已经尝试过其他网站的一些代码,但在我的代码中它不起作用。有人可以帮忙吗?
答案 0 :(得分:1)
如果字符串包含您要查找的内容,您是否说下面的 if 语句下面的代码会执行?
if re.search("\b{0}\b".format(itcontains),line):
如果是这样,那么您只需要将以下内容添加到此语句下面的代码块中:
found = True
这将使您的 if not found 子句保持运行状态。如果您要查找的字符串只能找到一次,我还会在您的第一个语句中添加 break 语句以打破循环。