如果成功执行另一个搜索python,则在枚举中搜索字符串

时间:2017-01-18 16:41:58

标签: python for-loop enumerate

我有以下代码:

with open("daily_rebar_test.txt", "w") as f2 :
  for index, i in enumerate(f):
    if regex.search(ignorecase, i):
        f2.writelines(f[index:index+1])
        f2.writelines("\n")
        index +=1

        if regex.search("Journal", i, index, index+1 ):
             f2.writelines(f[index:index+1])
             f2.writelines("\n")
             index +=1

我需要它做的是搜索预编译的案例,如果找到它,它会将该行写入新的txt文件。 在成功写入行之后,我需要它使用新参数(" Journal")执行另一次搜索,对于遇到的每种情况,它都需要将其写入新文件;当" Journal"不再遇到我需要它返回并执行初始搜索。

目前代码找到了预编译的案例,但是因为它在尝试搜索" Journal"时没有正确递增索引。它还在旧线上。即使它可以执行对Journal的搜索,它也只会执行一次,然后返回到初始搜索。不知怎的,我需要在for循环中使用for循环,但我似乎无法弄清楚应该如何编写语法。

谢谢, 克里斯蒂安

1 个答案:

答案 0 :(得分:0)

我设法使用以下代码使脚本工作:      'ignorecase = regex.compile(data_keyword_search,regex.IGNORECASE)

f = open(data_path_to_suite).read().splitlines()

with open(data_path_to_save, "w") as f2:
    enum = enumerate(f)
    found_custom_directory = False
    for index, line in enum:
         if regex.search(ignorecase, line):
             f2.writelines(f[index:index+1])
             f2.writelines("\n")
             found_custom_directory = True

#
         else:
             if regex.search("Directory", line):
                 found_custom_directory = False
             if found_custom_directory == True:
                 if regex.search("Journal", line):
                     f2.writelines(f[index:index+1])
                     f2.writelines("\n")'