file_name=str(code)+str(i).rjust(4, ‘0’) - формирует строку вида (1234-это переменная code, которая вводится пользователем, плюс четырехзначный счетчик 0001, 0002, …..)
Эта строка используется дважды: как название для выходного файла и для замены переменной Id в этом же файле.
Что мне предложил py.user.next я не понял и попросил его уточнить.
Про спецсимволы не в курсе.
Как в тройке сконвертировать число в байтовую строку? Хрень какаето.