Программа возвращает пустой файл
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
И не забывайте закрывать файлы.