estou tentando fazer um programa que recebe um arquivo e, gera um novo arquivo a partir desse, porém, com enumeração de páginas e limite de caracteres por linhas.
estou tentando apresentar o número da página a cada 30 linhas e limitar cada linha com 76 caracteres, assim, se no arquivo original uma linha tiver mais, ela é quebrada e continua embaixo seguindo a mesma regra, mas não to conseguindo fazer. duas das minhas várias tentativas foram:
#aqui recebe o nome do arquivo que deseja paginar
nome_arq = input('arquivo> ')
with open(nome_arq, encoding='utf-8') as arq_or, open(f'2-{nome_arq}', 'w', encoding='utf-8') as nv_arq:
#aqui foi uma tentativa de contar o número de linhas para pôr o número da página.
nl = 1
np = 1
for i in arq_or:
#aqui verificaria se a quantidade de linhas for divisível por trinta teria
#que adicionar uma linhas informando o número da página
if nl%30==0:
nv_arq.write(f'{np}')
np+=1
#aqui verificaria se cada linha tem mais de 76 caracteres
if len(i) > 76:
tl = len(i)
#se tivesse repetiria esse processo até todos os caracteres fossem escritos
while True:
nv_arq.write(f'{i[:76]}')
tl-=76
if tl <= 0:
break
else:
nv_arq.write(f'{i[:]}')
nl+=1
tentei também:
from math import ceil
nome = input('arquivo> ')
#verifica o a quantidade de linhas no arquivo.
tarq = open(nome, 'r')
j = 0
for i in tarq.readlines():
j+=1
tarq.close()
with open(nome) as arq, open(f'2-{nome}', 'w') as nv_arq:
#transforma o valor j na quantidade de páginas que terá o arquivo
pag = 0
for i in range(ceil(j/30)):
lin = 0
while lin < 29:
nv_arq.write(f'{arq.readline()}')
if lin == 28:
pag+=1
nv_arq.write(f'{pag}'.center(76))
lin+=1
só que nenhum deu certo!!!
alguém sabe como fazer isso?