У меня есть следующий код:поиска строки в качестве Перечислишь в случае успеха выполнить другой поиск Python
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-файл. После того, как строка была написана успешно, мне нужно, чтобы она выполняла другой поиск с использованием нового параметра («Журнал»), для каждого найденного случая ему нужно было записать его в новый файл; когда «Журнал» больше не встречается, мне нужно, чтобы он вернулся и выполнил первоначальный поиск.
В настоящее время код находит предварительно скомпилированный случай, но поскольку он не увеличивает индекс правильно, когда он пытается найти «Журнал», он все еще находится на старой строке. Даже если он сможет выполнить поиск в Журнале, он сделает это только один раз, а затем вернется к первоначальному поиску. Как-то мне нужен цикл for внутри цикла for, но я просто не могу понять, как писать синтаксис.
Спасибо, Cristian
Я не совсем что вы делаете, но это похоже на случай, когда вы не должны использовать перечисление, а просто увеличивайте свой индекс вручную. –
Если я изменяю 'for index, i в enumerate (f)' to 'для индекса в f', он даст ошибку: index + = 1 TypeError: не может конкатенировать объекты 'str' и 'int' – Cristi1985
Почему вы меняете это так? В вашем коде 'i' является элементом в' f'; как я уже сказал, вам следует продолжить итерацию с помощью 'i', но установите' index' вручную. –