Solucionado (ver solução)
Solucionado
(ver solução)
6
respostas

Split em loop

Pessoal eu tenho uma texto e precisava realizar um split, contar o texto a cada x caracteres. E a cada split criar uma lista Por exemplo: Esse texto:

O vídeo fornece uma maneira poderosa de ajudá-lo a provar seu argumento. Ao clicar em Vídeo Online, você pode colar o código de inserção do vídeo que deseja adicionar. Você também pode digitar uma palavra-chave para pesquisar online o vídeo mais adequado ao seu documento. Para dar ao documento uma aparência profissional, o Word fornece designs de cabeçalho, rodapé, folha de rosto e caixa de texto que se complementam entre si. Por exemplo, você pode adicionar uma folha de rosto, um cabeçalho e uma barra lateral correspondentes. Clique em Inserir e escolha os elementos desejados nas diferentes galerias. Temas e estilos também ajudam a manter seu documento coordenado. Quando você clica em Design e escolhe um novo tema, as imagens, gráficos e elementos gráficos SmartArt são alterados para corresponder ao novo tema. Quando você aplica estilos, os títulos são alterados para coincidir com o novo tema. Economize tempo no Word com novos botões que são mostrados no local em que você precisa deles.

Deveria ficar:

O vídeo fornece uma maneira poderosa de ajudá-lo a provar seu argumento. (1º lista)
Ao clicar em Vídeo Online, você pode colar o código de inserção do vídeo que(2ºlista)
6 respostas

O único padrão que se repete no texto para que seja possível tornar cada frase em um elemento de uma lista é o ponto final. Portanto você deveria ler todo arquivo e analisar caractere por caractere até encontrar um ponto final, feito isso pegar os elementos anteriores concatena-los e coloca-los numa lista. Espero que isso tenha ajudado um pouco, pelo menos um pouquinho kkk.

Fiz esse código aqui, e aparentemente está funcionando perfeitamente, espero ter ajudado, só não esqueça de colocar o .txt na mesma pasta, vou colar para você a saída:

['O vídeo fornece uma maneira poderosa de ajudá-lo a provar seu argumento.', ' Ao clicar em Vídeo Online, você pode colar o código de inserção do vídeo que deseja adicionar.', ' Você também pode digitar uma palavra-chave para pesquisar online o vídeo mais adequado ao seu documento.', ' Para dar ao documento uma aparência profissional, o Word fornece designs de cabeçalho, rodapé, folha de rosto e caixa de texto que se complementam entre si.', ' Por exemplo, você pode adicionar uma folha de rosto, um cabeçalho e uma barra lateral correspondentes.', ' Clique em Inserir e escolha os elementos desejados nas diferentes galerias.', ' Temas e estilos também ajudam a manter seu documento coordenado.', ' Quando você clica em Design e escolhe um novo tema, as imagens, gráficos e elementos gráficos SmartArt são alterados para corresponder ao novo tema.', ' Quando você aplica estilos, os títulos são alterados para coincidir com o novo tema.', ' Economize tempo no Word com novos botões que são mostrados no local em que você precisa deles.']

arquivo  = open("texto.txt", "r")
texto = arquivo.read()
arquivo.close()


print(texto)

lista_frases = []

contador_caracteres = 0
frase = ""

for letra in texto:
    frase += letra
    if letra == ".":
        lista_frases.append(frase)
        frase = ""

print(lista_frases)

Infelizmente o texto não tem pontuação

Caso o X seja um número exato de caracteres, o código que fiz ainda funciona, só precisa fazer uns ajustes, mas caso o X seja mutável não consigo pensar numa solução, pelo menos por hora

Pode me ajudar a mudar o código para pegar x caracteres?

solução!
arquivo  = open("texto.txt", "r")
texto = arquivo.read()
arquivo.close()


lista_frases = []

contador_caracteres = 0
# quantridade_letras_lista recebe a quantidade X de caracteres 
quantidade_letras_lista = int(input("digite o número de caracteres por index:")) - 1# menos um pois começa no zero
frase = ""



for letra in texto:
    frase += letra
    if contador_caracteres == quantidade_letras_lista:
        lista_frases.append(frase)
        frase = ""
        contador_caracteres = 0#a variavel tem que ser zerada para que a condição dentro do laço seja válida mais uma vez
    contador_caracteres+=1

print(lista_frases)