Войдите, чтобы продолжить.
Войдите, чтобы продолжить.
Нарезка · Шаг 4 из 4
Имена частей и учёт
Частям нужны имена, и под ними они лягут на диск: «vygruzka_001.csv», «vygruzka_002.csv». А в конце человек хочет увидеть сводку — сколько вышло частей и сколько в какой записей. Сводка при этом не может быть посчитана заранее: сколько будет частей, никто не знает, пока файл не дочитан до конца.
Что сделать
Дайте частям имена файлов и ведите учёт по ходу — сколько записей в какой.
Что приходит
chasti— поток частей, каждая — список записейosnova— основа имени файла, например"vygruzka"otchyot— список, куда дописывать учёт; функция его и меняет
Что вернуть
Генератор: на каждую часть — пара (имя, часть), имя "vygruzka_001.csv"; перед выдачей в otchyot дописан словарь {"fayl": имя, "zapisey": сколько}.
Допишите функцию uchyot в редакторе справа.
Результат верните через return — то, что
напечатано, на проверку не влияет.
В проекте
Под этими именами утилита пишет части на диск, а по списку otchyot в конце печатает сводку: сколько частей и сколько в какой записей.
otchyot = []
pary = list(uchyot([[{"n": 1}, {"n": 2}], [{"n": 3}]], "vygruzka", otchyot))
(pary, otchyot)
([('vygruzka_001.csv', [{'n': 1}, {'n': 2}]), ('vygruzka_002.csv', [{'n': 3}])], [{'fayl': 'vygruzka_001.csv', 'zapisey': 2}, {'fayl': 'vygruzka_002.csv', 'zapisey': 1}])
Функция принимает поток частей, основу имени (строка) и отчёт (список). Отдаёт пары «имя файла и часть» — по паре на каждую часть. Имя файла: основа, подчёркивание, номер части тремя знаками с ведущими нулями, «.csv». Нумерация с единицы. Перед выдачей каждой пары в отчёт дописывается словарь с двумя ключами: «fayl» — имя файла, «zapisey» — сколько записей в части. Отчёт заполняется по ходу: после каждой выданной пары в нём ровно столько строк, сколько пар уже выдано.
Обсуждение
Вопросов пока нет.
Войдите, чтобы спросить.