def fragmentar_numerado(texto):
partes = texto.split("\n\n")
resultado = []
for i, p in enumerate(partes, start=1):
resultado.append(f"{i}. {p.strip()}")
return "\n\n".join(resultado)
texto = """
Introdução ao tema.
Desenvolvimento da ideia principal.
Segunda secção com análise crítica.
Conclusão final.
"""
print(fragmentar_numerado(texto))
import re
def fragmentar_frases(texto):
frases = re.split(r'(?<=[.!?])\s+', texto)
return "\n".join(frases)
texto = "Este é um exemplo. O objetivo é fragmentar logicamente. Para fins académicos."
print(fragmentar_frases(texto))
def analisar_linhas(texto):
linhas = texto.split("\n")
resultado = []
for i, linha in enumerate(linhas, start=1):
resultado.append(f"Linha {i}: {linha}\nComentário: [insere análise aqui]\n")
return "\n".join(resultado)
texto = """A primeira linha do texto.
A segunda linha contém outra ideia.
A terceira linha fecha o argumento."""
print(analisar_linhas(texto))
def fragmentar_academico(texto):
partes = texto.split("\n\n") # separa por parágrafos duplos
resultado = []
for i, p in enumerate(partes, start=1):
resultado.append(f"{i}. {p.strip()}\n")
return "\n".join(resultado)
texto = """
Introdução ao tema.
Desenvolvimento da ideia principal.
Segunda secção com análise crítica.
Conclusão final.
"""
print(fragmentar_academico(texto))
import re
def fragmentar_por_frases(texto):
frases = re.split(r'(?<=[.!?])\s+', texto)
return "\n".join(frases)
texto = "Este é um exemplo. O objetivo é fragmentar logicamente. Para fins académicos."
print(fragmentar_por_frases(texto))
def ler_conteudo_total(caminho_ficheiro):
try:
with open(caminho_ficheiro, 'r', encoding='utf-8') as ficheiro:
# .read() lê o ficheiro completo de uma só vez
conteudo_completo = ficheiro.read()
print(f"Sucesso! Foram lidos {len(conteudo_completo)} caracteres.")
return conteudo_completo
except FileNotFoundError:
print("Erro: O ficheiro de testes não foi encontrado.")
return None
# Demonstração
# conteudo = ler_conteudo_total("dados_ac
ademicos.txt")
def carregar_linhas_na_memoria(caminho_ficheiro):
try:
with open(caminho_ficheiro, 'r', encoding='utf-8') as ficheiro:
# Cria uma lista com todas as linhas instantaneamente
lista_de_linhas = ficheiro.readlines()
print(f"Sucesso! O ficheiro contém {len(lista_de_linhas)} linhas carregadas em memória.")
return lista_de_linhas
except FileNotFoundError:
return []
import os
import sys
import psutil
def obter_memoria_processo():
"""Retorna a memória RAM atual usada por este script em Megabytes (MB)."""
processo = psutil.Process(os.getpid())
# memory_info().rss representa o Resident Set Size (memória real na RAM)
memoria_bytes = processo.memory_info().rss
return memoria_bytes / (1024 * 1024)
def teste_impacto_memoria():
print("--- INÍCIO DO EXPERIMENTO ACADÉMICO ---")
# 1. Medição Inicial (Baseline)
memoria_inicial = obter_memoria_processo()
print(f"Uso de RAM Inicial: {memoria_inicial:.2f} MB")
# 2. Simulação de Leitura de Bloco Massivo (Ex: 50 Milhões de Caracteres)
# Criamos uma string longa para simular o carregamento de um ficheiro grande de uma só vez
print("\n[AÇÃO] A carregar string longa para a memória...")
string_massiva = "A" * 50_000_000
# 3. Medição Após o Carregamento
memoria_final = obter_memoria_processo()
print(f"Uso de RAM Final: {memoria_final:.2f} MB")
# 4. Cálculo do Impacto
consumo_real = memoria_final - memoria_inicial
tamanho_objeto_sys = sys.getsizeof(string_massiva) / (1024 * 1024)
print("\n--- RESULTADOS DA ANÁLISE ---")
print(f"• Impacto total medido no Processo: {consumo_real:.2f} MB")
print(f"• Tamanho exato do objeto string (via sys.getsizeof): {tamanho_objeto_sys:.2f} MB")
if __name__ == "__main__":
teste_impacto_memoria()









No comments:
Post a Comment