Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Como Dividir Intervalos Numéricos em Blocos com Python e Salvar em CSV

Como Dividir Intervalos Numéricos em Blocos com Python e Salvar em CSV

Publicado por em


@CanalQb no YouTube


@CanalQb

Como Dividir Intervalos Numéricos em Blocos com Python e Salvar em CSV


Sempre crie uma frase de segurança única para jogos, testnets ou airdrops e evite usar sua carteira principal.



Como Dividir Intervalos Numéricos em Blocos com Python e Salvar em CSV

Se você precisa processar grandes intervalos numéricos — como endereços em formato decimal — e deseja dividir esses intervalos em blocos para facilitar o manuseio e análise posterior, este artigo apresenta uma solução prática com Python.

Além de dividir o intervalo, o script também imprime os blocos, estima a memória disponível, e exporta os dados em um arquivo CSV de forma automatizada. Ideal para tarefas envolvendo grandes volumes de dados e entropia computacional, como em criptografia, blockchain ou big data.

Pré-requisitos

  • Python 3 instalado
  • Bibliotecas: psutil, gc, csv (todas incluídas na biblioteca padrão, exceto psutil)

Explicação do Código

1. Cálculo de Endereços Possíveis

A função calcular_enderecos_possiveis(inicio, fim) determina o número total de endereços em um intervalo. Isso é útil para saber a magnitude da operação.

2. Divisão em Blocos

Com dividir_blocos(), você pode quebrar grandes intervalos numéricos em blocos menores e manipuláveis. Por exemplo, dividir entre 295147905179352825856 e 590295810358705651711 em blocos de 1 quatrilhão (1015) de endereços.

3. Impressão e Liberação de Memória

A função imprimir_blocos() percorre os blocos e os imprime individualmente, liberando a memória após cada loop com gc.collect(). Isso ajuda a manter o desempenho estável mesmo com grandes volumes de dados.

4. Exportação para CSV

O conteúdo dos blocos pode ser salvo com salvar_em_csv(). O arquivo gerado terá colunas “Bloco”, “Inicio” e “Fim”, útil para importar posteriormente em bancos de dados ou planilhas.

Exemplo de Saída

[+] Estimativa de memória disponível: 15782.00 MB
[+] Dividindo os endereços entre 295147905179352825856 e 590295810358705651711 em blocos de 1000000000000000 endereços.
Existem 295147905179352825856 endereços possíveis com 69 bits de entropia.
Bloco 1: Endereços de 295147905179352825856 a 296147905179352825855
...
[+] Blocos salvos no arquivo enderecos_blocos.csv

Script Python Completo

Segue abaixo o script completo que você pode executar em seu ambiente local:

import psutil
import gc
import csv

def calcular_enderecos_possiveis(inicio, fim):
    num_enderecos = fim - inicio + 1
    print(f"Existem {num_enderecos} endereços possíveis com 69 bits de entropia.")
    return num_enderecos

def dividir_blocos(inicio, fim, tamanho_bloco):
    num_enderecos = fim - inicio + 1
    blocos = []
    num_blocos = num_enderecos // tamanho_bloco
    if num_enderecos % tamanho_bloco != 0:
        num_blocos += 1
    for i in range(num_blocos): 
        bloco_inicio = inicio + i * tamanho_bloco
        bloco_fim = bloco_inicio + tamanho_bloco - 1
        if bloco_fim > fim:
            bloco_fim = fim
        blocos.append((bloco_inicio, bloco_fim))
    return blocos

def imprimir_blocos(blocos):
    for i, bloco in enumerate(blocos):
        bloco_inicio, bloco_fim = bloco
        print(f"Bloco {i+1}: Endereços de {bloco_inicio} a {bloco_fim}")
        gc.collect()

def salvar_em_csv(blocos, arquivo_csv):
    with open(arquivo_csv, mode='w', newline='') as file:
        writer = csv.writer(file)
        writer.writerow(["Bloco", "Inicio", "Fim"])
        for i, bloco in enumerate(blocos):
            writer.writerow([i+1, bloco[0], bloco[1]])
    print(f"\n[+] Blocos salvos no arquivo {arquivo_csv}")

def main():
    inicio = int(295147905179352825856)
    fim = int(590295810358705651711)
    tamanho_bloco = 10**15
    memoria_disponivel = psutil.virtual_memory().available
    memoria_disponivel_mb = memoria_disponivel / (1024 ** 2)
    print(f"\n[+] Estimativa de memória disponível: {memoria_disponivel_mb:.2f} MB")
    print(f"[+] Dividindo os endereços entre {inicio} e {fim} em blocos de {tamanho_bloco} endereços.")
    calcular_enderecos_possiveis(inicio, fim)
    blocos = dividir_blocos(inicio, fim, tamanho_bloco)
    imprimir_blocos(blocos)
    salvar_em_csv(blocos, "enderecos_blocos.csv")

if __name__ == "__main__":
    main()

Casos de Uso Comuns

  • Análise de grandes intervalos de endereços IP ou carteiras blockchain
  • Divisão de tarefas computacionais em clusters
  • Organização de ranges para mineração de dados ou brute-force ético

Responsabilidade e Ética

Este artigo tem caráter educacional e deve ser usado com responsabilidade. Ao lidar com scripts que manipulam grandes volumes de dados ou são aplicáveis em áreas como segurança da informação, é essencial avaliar cada aplicação de forma ética e legal.

Cada leitor é responsável por realizar sua própria análise crítica e não utilizar ou investir recursos em áreas que não compreende totalmente. O uso indevido de automações em ambientes sensíveis pode causar danos significativos.

Fonte e Contribuidores

O script foi construído com base em boas práticas da linguagem Python e pode ser adaptado conforme sua necessidade. Para mais informações sobre a biblioteca psutil, acesse o site oficial: https://psutil.readthedocs.io/en/latest/

Marcadores: Airdrop Blogger Cripto IA Jogos Mineração Python Script Sistemas Tutorial

© junho 30, 2025 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários