Читайте файл через for line in file и применяйте process_fn к каждой строке. По тексту условия process_record должен делать lower().replace('o', 'z'); комментарий про цифру 0 противоречит этому описанию.
Построчная обработка файла
Читайте файл через for line in file и применяйте process_fn к каждой строке. По тексту условия process_record должен делать lower().replace('o', 'z'); комментарий про цифру 0 противоречит этому описанию.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Требуется реализовать две функции: первая – process_dataset, которая принимает имя файла и функцию‑обработчик, последовательно читает файл построчно и применяет к каждой строке переданную функцию; вторая – process_record, преобразующая полученную строку: сначала переводит её в нижний регистр, затем заменяет каждый символ 'o' на `'z'.
def process_dataset(file_name, process_fn):
# TODO: Implement the function
pass
def process_record(record):
# TODO: Implement the processing function
# 1. Lowercase
# 2. 0 -> z
pass
# Test the function
process_dataset('data.txt', process_record)
Ответ
Читайте файл через for line in file и применяйте process_fn к каждой строке. По тексту условия process_record должен делать lower().replace('o', 'z'); комментарий про цифру 0 противоречит этому описанию.
Ниже результаты выводятся сразу, без накопления всего файла:
def process_record(record):
return record.lower().replace('o', 'z')
def process_dataset(file_name, process_fn):
with open(file_name, encoding='utf-8') as source:
for line in source:
print(process_fn(line), end='')
end='' сохраняет уже имеющиеся переводы строк без добавления лишних. Если подразумевалась именно цифра 0, замените 'o' на '0' после уточнения условия. Память ограничена текущей строкой, но одна чрезвычайно длинная строка тоже может быть большой.