Дано:
папка с фото, где имена файлов могут быть с пробелами
параметром к скрипту передается строка
Задача:
написать метод, который будет возвращать файл, имя которого.strip() == строке из параметра
Вот что я наваял:
def finding_employee_photo():
fio = sys.argv[1]
photo_list = os.listdir(r'C:\Users\s41bl\PycharmProjects\project_birthday\empl_photo')
photo_path = r'C:\Users\s41bl\PycharmProjects\project_birthday\empl_photo\\'
file_names = [os.path.splitext(x)[0] for x in photo_list]
photo_bytes = ''
now = datetime.datetime.now()
for el in file_names:
if el.strip() == fio:
f_ind = file_names.index(el)
photo_bytes = open(photo_path + file_names[f_ind] + '.jpg', 'rb').read()
else:
with open('logs.txt', 'a') as f:
f.write(now.strftime("%d-%m-%Y %H:%M") + ' Фото сотрудника ' + fio + ' не найдено ' + '\n')
print('не найдено фото')
break
return photo_bytes
Я никак не могу сообразить, как нормально сравнить строку с именами файлов в папке, так что бы, если он там есть, то его вернуть, а если нет, то ОДИН РАЗ сделать запись в логи. У меня получается на каждой итерации цикла, где ложь, в файл логов делается запись. Я пробовал break, но как бы не додумался как его туда прикрутить нормально.