@quintbrut

Как сверить одну строку со всеми строками из базы.txt, за тем если найдутся совпадения, то записать эту строку в отдельный текстовик?

В общем есть переменная w2.
Допустим, что w2 = "космодром" , теперь как мне сделать чтобы сравнить w2 с каждой строкой из база.txt и если найдутся совпадения (хотя-бы одно), то есть даже "космодромы" или даже "космодромовцы" считается за совпадение, то записать в отдельный текстовик deleted.txt. А если после поиска по всей базе не найдется ни одно совпадение, то записать w2 на w3.
w3 = w2

Я не очень то и могу работать с файлами и строками, помогите пожалуйста, хотя-бы идеями.
  • Вопрос задан
  • 144 просмотра
Решения вопроса 1
Dr_Elvis
@Dr_Elvis
w2 = 'космодром'
flag = True
with open('база.txt') as f:
    for line in f:
        if w2 in line:
            with open('delete.txt', 'a') as d:
                d.write(f'{line}\n')
                flag = False
    if flag:
        w3 = w2
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@xDimus
Открываешь файл, считываешь построчно, после каждого считывания ищешь нужный текст, если нашел записываешь в deleted и завершаешь программу, если не нашел то w2 на w3
Ответ написан
@Krendelev
w2 = "космодром"

with open("base.txt") as bh:
    lines = [line for line in bh]
    
with open("base.txt", "w") as bh, open("deleted.txt", "w") as dh:
    handler = {True: dh, False: bh}
    for line in lines:
        handler[w2 in line].write(line)
    w3 = None if dh.tell() else w2
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы