Построчная обработка файла

Читайте файл через 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' после уточнения условия. Память ограничена текущей строкой, но одна чрезвычайно длинная строка тоже может быть большой.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее