Программа возвращает пустой файл

zapret=['_','#']

#ОТСЕИВАНИЕ НЕВАЛИДНЫХ ПАРОЛЕЙ
def zapinline(line, zapret):
    for sym in zapret:
        if line.find(sym) != -1:
            return 1
        else:
            continue
    else:
        return 0
    
         

inputfile='password.txt'
outputfile='done_passwords.txt'

infile=open(inputfile, mode='r', encoding='UTF-8')
outfile=open(outputfile, mode='w', encoding='UTF-8')
for line in infile:
#Построчно проверяет докумет
    if len(line)>=6 and zapinline(line,zapret)==0:
        outfile.write(str(line))
    else:
        continue

Входные данные:

Normalniy
Kor
S Probelom
VtoroyNormalniy
S_Procherkom
S#Zvezdoy

Ожидаемый результат: Normalniy S Probelom VtoroyNormalniy

Полученный результат: Пустой выходной файл

Пожалуйста, укажите на ошибку и буду очень благодарен, если подскажете как сделать это более красиво. Думаю, что проблема где-то в функции zapinline, т.к. если удаляю её, то всё норм, хотя проблема возникает даже, если я нигде не вызываю эту функцию. Заранее прошу прошения, если вопрос покажется тупым или там будет какая-то банальная ошибка, но я её не вижу(


Ответы (1 шт):

Автор решения: Эникейщик

zapinline так сложно написана, что даже непонятно, что она делает. Вот простой и понятный вариант:

def zapinline(line):
    for sym in zapret:
        if sym in line:
            return True # есть запретный символ 
    return False

И не забывайте закрывать файлы.

→ Ссылка