associação pythonbrasil[11] django zope/plone planet Início Logado como (Entrar)

Você não tem permissão para executar esta ação.

Excluir mensagem

GeradorDeCnpj

Então que precisei de um gerador de CNPJ válido, e, já conhecendo o bom código funcional para GeradorDeCpf do OsvaldoSantanaNeto , decidi fazer a minha interpretação dele.

Código

import random

def cnpj(self, punctuation = False):
    n = [random.randrange(10) for i in range(8)] + [0, 0, 0, 1]
    v = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6]
    # calcula dígito 1 e acrescenta ao total
    s = sum(x * y for x, y in zip(reversed(n), v))
    d1 = 11 - s % 11
    if d1 >= 10:
      d1 = 0
    n.append(d1)
    # idem para o dígito 2
    s = sum(x * y for x, y in zip(reversed(n), v))
    d2 = 11 - s % 11
    if d2 >= 10:
      d2 = 0
    n.append(d2)
    if punctuation:
      return "%d%d.%d%d%d.%d%d%d/%d%d%d%d-%d%d" % tuple(n)
    else:
      return "%d%d%d%d%d%d%d%d%d%d%d%d%d%d" % tuple(n)

Se você precisa de alguns CNPJs aleatórios use a função assim:

print("\n".join([cnpj(True) for i in range(10)]))

E se você não quiser a pontuação no nome, não passe nenhum argumento para a função. Simples assim.