<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/">
    <title>adriner.fr</title>
    <link href="https://novo.adriner.fr/feed.xml" rel="self" />
    <link href="https://novo.adriner.fr" />
    <updated>2026-04-25T22:26:09-03:00</updated>
    <author>
        <name>Adriner Ferreira</name>
    </author>
    <id>https://novo.adriner.fr</id>

    <entry>
        <title>Como extrair milhares de Chaves de Acesso (NF-e/CT-e) em segundos com Python</title>
        <author>
            <name>Adriner Ferreira</name>
        </author>
        <link href="https://novo.adriner.fr/como-extrair-milhares-de-chaves-de-acesso-nf-ect-e-em-segundos-com-python/"/>
        <id>https://novo.adriner.fr/como-extrair-milhares-de-chaves-de-acesso-nf-ect-e-em-segundos-com-python/</id>
        <media:content url="https://novo.adriner.fr/media/posts/2/fundo-preto.jpg" medium="image" />
            <category term="Dicas"/>

        <updated>2026-04-24T22:20:53-03:00</updated>
            <summary type="html">
                <![CDATA[
                        <img src="https://novo.adriner.fr/media/posts/2/fundo-preto.jpg" alt="" />
                    Pessoal, quem trabalha com o setor fiscal sabe o pesadelo que é abrir arquivo por arquivo para copiar chaves de acesso. Para facilitar nossa vida aqui na fiscal.io, desenvolvi um pequeno script em Python que faz todo o trabalho pesado por nós. Ele varre todas as pastas (21, 22, 23...) e entrega um arquivo prontinho com todas as chaves." Busca Recursiva: Ele entra em todas as subpastas automaticamente (não importa se você organiza por ano ou mês). Inteligência Fiscal: Identifica apenas sequências de 44 dígitos, que é o padrão das chaves de NF-e e CT-e. Limpeza de Duplicados: Se uma&hellip;
                ]]>
            </summary>
        <content type="html">
            <![CDATA[
                    <p><img src="https://novo.adriner.fr/media/posts/2/fundo-preto.jpg" class="type:primaryImage" alt="" /></p>
                <p data-path-to-node="6"><span data-path-to-node="6,2"><span class="citation-20">Pessoal, quem trabalha com o setor fiscal sabe o pesadelo que é abrir arquivo por arquivo para copiar chaves de acesso. Para facilitar nossa vida aqui na </span><strong data-path-to-node="6,2" data-index-in-node="155"><span class="citation-20">fiscal.io</span></strong></span><span data-path-to-node="6,4">, desenvolvi um pequeno script em Python que faz todo o trabalho pesado por nós. Ele varre todas as pastas (21, 22, 23...) e entrega um arquivo prontinho com todas as chaves."</span></p>
<div class="source-inline-chip-container ng-star-inserted"> </div>
<p id="p-rc_df3ecb604786c1c8-27" data-path-to-node="6"></p>
<hr data-path-to-node="7">
<h3 data-path-to-node="8">🛠️ O que o Script faz?</h3>
<ul data-path-to-node="9">
<li>
<p data-path-to-node="9,0,0"><strong data-path-to-node="9,0,0" data-index-in-node="0">Busca Recursiva:</strong> Ele entra em todas as subpastas automaticamente (não importa se você organiza por ano ou mês).</p>
</li>
<li>
<p data-path-to-node="9,1,0"><strong data-path-to-node="9,1,0" data-index-in-node="0">Inteligência Fiscal:</strong> Identifica apenas sequências de <strong data-path-to-node="9,1,0" data-index-in-node="53">44 dígitos</strong>, que é o padrão das chaves de NF-e e CT-e.</p>
</li>
<li>
<p data-path-to-node="9,2,0"><strong data-path-to-node="9,2,0" data-index-in-node="0">Limpeza de Duplicados:</strong> Se uma chave aparecer em dois relatórios diferentes, o script salva apenas uma vez.</p>
</li>
</ul>
<p> </p>
<h3 data-path-to-node="11">💻 O Código</h3>
<p data-path-to-node="12"><i data-path-to-node="12" data-index-in-node="0">(No Publii, use o bloco <strong data-path-to-node="12" data-index-in-node="24">"Code"</strong> para colar o script abaixo)</i></p>
<pre class="language-python"><code>import os
import re

# Defina o caminho da sua pasta aqui
caminho_pasta = r"C:\SEU_CAMINHO_AQUI"
arquivo_saida = os.path.join(caminho_pasta, "chaves_extraidas.txt")

padrao_chave = re.compile(r'\d{44}')
chaves_totais = set()

for raiz, pastas, arquivos in os.walk(caminho_pasta):
    for nome_arq in arquivos:
        if nome_arq.endswith('.py'): continue
        
        try:
            with open(os.path.join(raiz, nome_arq), 'r', encoding='latin-1') as f:
                encontradas = padrao_chave.findall(f.read())
                for c in encontradas:
                    chaves_totais.add(c)
        except:
            continue

with open(arquivo_saida, 'w') as f_out:
    for chave in sorted(chaves_totais):
        f_out.write(chave + '\n')

print(f"Sucesso! {len(chaves_totais)} chaves extraídas.")</code></pre>
            ]]>
        </content>
    </entry>
    <entry>
        <title>Simulação Banco de Dados</title>
        <author>
            <name>Adriner Ferreira</name>
        </author>
        <link href="https://novo.adriner.fr/calculadora/"/>
        <id>https://novo.adriner.fr/calculadora/</id>
        <media:content url="https://novo.adriner.fr/media/posts/1/BD.jpg" medium="image" />
            <category term="Dicas"/>

        <updated>2026-04-24T12:51:16-03:00</updated>
            <summary></summary>
        <content type="html">
            <![CDATA[
                    <p><img src="https://novo.adriner.fr/media/posts/1/BD.jpg" class="type:primaryImage" alt="" /></p>
                <div><iframe loading="lazy" 
  src="/media/files/calculadora.html" 
  width="100%" 
  height="700" 
  style="border:0; border-radius:12px; overflow:hidden;">
</iframe>
</div>

  <p>
    
  </p>
            ]]>
        </content>
    </entry>
</feed>
