Closed elossio closed 3 years ago
Solução:
from dotenv import load_dotenv load_dotenv(verbose=True)
Boa Noite! Mesmo seguindo os passos acima, não consigo gerar os arquivos por CIDADE e/ou UF. Como deve ser o nome do arquivo .env? No Location uso \ ou /? Agradeço se puder ajudar.
Bom dia, Na ocasião o arquivo env.example e os script Python estavam no Windows, por isso o uso do back slash. Tente reproduzir aqui as linhas de comandos, o erro e o seu ambiente operacional para que possamos lhe auxiliar melhor. Você chegou a instalar o python-dotenv conforme descrito como pré-requisito? Onde está localizado o arquivo empresas.csv no seu ambiente operacional?
Opa, Bom Dia! Valeu pelas dicas amigo, segue:
S.O - Windows 10 64bits
Python: 3.8.6
Arquivo .env.example - FILES_LOCATION=\C:\RECEITA FEDERAL\BD
Até criei um arquivo empresas.env com o mesmo conteúdo que o acima
Comando CMD - C:\RECEITA FEDERAL\CNPJ-full-master\extra_csv>python separar_csv_por_uf.py
Retorno - Traceback (most recent call last):
File "separar_csv_por_uf.py", line 9, in
Dá o mesmo retorno com ou sem a alteração em setings.py
Agradeço muito a ajuda,
Você chegou a instalar o python-dotenv conforme descrito como pré-requisito? O arquivo empresas.csv está na localização indicada pelo arquivo env.example?
Fiz sim a instalação e acabei de refazer... C:\RECEITA FEDERAL\CNPJ-full-master\extra_csv>python -m pip install python-dotenv Requirement already satisfied: python-dotenv in c:\program files\python38\lib\site-packages (0.14.0) O arquivo está no caminho indicado... C:\RECEITA FEDERAL\BD>dir O volume na unidade C não tem nome. O Número de Série do Volume é 6892-843E
Pasta de C:\RECEITA FEDERAL\BD
23/10/2020 22:37
Não faço ideia do que pode ser, já alterei o caminho de várias formas e nada....
Faz um teste. Repete o seu comando com a inclusão da instrução print(location) na linha 8 do script separa_csv_por_uf.py e veja o resultado na tela! Quero conferir a concatenação do location com a variável file
Não encontrou o caminho...
C:\RECEITA FEDERAL\CNPJ-full-master\extra_csv>python separar_csv_por_uf.py
None
Traceback (most recent call last):
File "separar_csv_por_uf.py", line 9, in
Já utilizei o Location das segintes formas nos arquivos: .env.exemple e empresas.env FILES_LOCATION=/RECEITA FEDERAL/BD FILES_LOCATION=c:\RECEITA FEDERAL\BD FILES_LOCATION=\c:\RECEITA FEDERAL\BD
Já utilizei o Location das segintes formas nos arquivos: .env.exemple e empresas.env FILES_LOCATION=/RECEITA FEDERAL/BD FILES_LOCATION=c:\RECEITA FEDERAL\BD FILES_LOCATION=\c:\RECEITA FEDERAL\BD
Será que vc não precisa colocar entre aspas, já que tem um espaço no meio de RECEITA FEDERAL, algo como FILES_LOCATION="c:/RECEITA FEDERAL/BD/" ou r"c:/RECEITA FEDERAL/BD/"
Pelo erro, TypeError: unsupported operand type(s) for +: 'NoneType' and 'str', parece que está tentando juntar o location + file, o location é lido na linha 5: location = os.getenv('FILES_LOCATION') A mensagem de erro está dizendo que a função os.getenv não está lendo o 'FILES_LOCATION'. Vc pode alterar a linha 5 do separar_csv_por_uf.py e colocar location = r"c:/RECEITA FEDERAL/BD/" precisa do / no final porque vai juntar a pasta com o nome do arquivo.
Prezados boa Noite Desculpe a pergunta boba, sou novato no assunto. Estou usando Ubuntu e aparentemente meu .setting esta configurada e todos os pré requisitos foram atendidos. Mas ao rodar python separar_csv_por_uf.py
O erro de retorno é sempre:
File "separar_csv_por_uf.py", line 35 print('Erros de processamento: {}'.format(count_erro), end='\r') ^ SyntaxError: invalid syntax
Ele simplesmente ignora todo o início do arquivo e vai direto para a penúltima linha do código.
import settings import csv, codecs, os from header_dict import get_header_index
location = os.getenv('FILES_LOCATION')
file = 'empresas.csv'
with codecs.open(location + file, 'r+', 'utf-8') as empresas:
empresas = csv.reader(x.replace('\0', '') for x in empresas)
next(empresas,None)
count_sucesso = 0
count_erro = 0
if not os.path.exists(location + 'UFs/'):
os.makedirs(location + 'UFs/')
for empresa in empresas:
uf = empresa[get_header_index('uf')]
try:
uf_file = open(location + 'UFs/' + uf + ".csv", "a+")
except:
uf_file = open(location + 'UFs/' + uf + ".csv", "w+")
try:
uf_file.writelines('"' + '","'.join(empresa) + '"\n')
count_sucesso += 1
except:
count_erro += 1
Linha 35 ->>> print('Erros de processamento: {}'.format(count_erro), end='\r')
print('Empresas processadas: {}'.format(count_sucesso), end='\r')
Vcs poderiam me ajudar?
Esse script está lendo o conteúdo de empresas.csv. Você já criou esse arquivo? O comando é python3 cnpj.py PASTA_COM_ZIPS csv PASTA_DE_SAIDA --dir
Obrigado pelo retorno. E Feliz Ano Novo!!! Que tenhamos muita saúde e paz em 2021.
Criei sim. Demorou cerca de 4 horas para gerar.
Como uso o windows, tem uma parte do código que não consigo usar, mas se eu comento a linha 1
e troco a linha do location para '' location = '' #os.getenv('FILES_LOCATION') e copia o arquivo empresas.csv para a pasta onde está o script separar_csv_poruf.py, funcionou normalmente.
Sá o mesmo erro de antes.
root@ubuntu:/home/rjunior/CNPJ_Full/C/extra_csv# python separar_csv_por_uf.py File "separar_csv_por_uf.py", line 36 print('Erros de processamento: {}'.format(count_erro), end='\r') ^ SyntaxError: invalid syntax
Obrigado pelo retorno. E Feliz Ano Novo!!! Que tenhamos muita saúde e paz em 2021.
Criei sim. Demorou cerca de 4 horas para gerar.
Boa tarde @RF-Junior, você fez opção pela geração dos arquivos csv. Você poderia reproduzir a sintaxe do comando utilizado? Foi alguma coisa assim python3 cnpj.py "PASTA_COM_ZIPS" csv "PASTA_DE_SAIDA" --dir
Os três arquivos empresa.csv, cnaes_secundarios.csv e socios.csv estão numa pasta diferente do local do script separar_csv_por_uf.py?
Prezados boa Noite Desculpe a pergunta boba, sou novato no assunto. Estou usando Ubuntu e aparentemente meu .setting esta configurada e todos os pré requisitos foram atendidos. Mas ao rodar python separar_csv_por_uf.py
O erro de retorno é sempre:
File "separar_csv_por_uf.py", line 35 print('Erros de processamento: {}'.format(count_erro), end='\r') ^ SyntaxError: invalid syntax
Ele simplesmente ignora todo o início do arquivo e vai direto para a penúltima linha do código.
import settings import csv, codecs, os from header_dict import get_header_index
location = os.getenv('FILES_LOCATION')
file = 'empresas.csv'
with codecs.open(location + file, 'r+', 'utf-8') as empresas:
empresas = csv.reader(x.replace('\0', '') for x in empresas) next(empresas,None) count_sucesso = 0 count_erro = 0 if not os.path.exists(location + 'UFs/'): os.makedirs(location + 'UFs/') for empresa in empresas: uf = empresa[get_header_index('uf')] try: uf_file = open(location + 'UFs/' + uf + ".csv", "a+") except: uf_file = open(location + 'UFs/' + uf + ".csv", "w+") try: uf_file.writelines('"' + '","'.join(empresa) + '"\n') count_sucesso += 1 except: count_erro += 1
Linha 35 ->>> print('Erros de processamento: {}'.format(count_erro), end='\r')
print('Empresas processadas: {}'.format(count_sucesso), end='\r')
Vcs poderiam me ajudar?
Aparentemente, seu problema está na sintaxe do comando do script de separação!
loop 'for' de iteração: `for empresa in empresas:
uf = empresa[get_header_index('uf')]
try:
uf_file = open(location + 'UFs/' + uf + ".csv", "a+")
except:
uf_file = open(location + 'UFs/' + uf + ".csv", "w+")
**try: ### não está conseguindo executar esta parte do bloco
uf_file.writelines('"' + '","'.join(empresa) + '"\n')
count_sucesso += 1**
except: ### esta é a exceção do try acima
count_erro += 1
print('Erros de processamento: {}'.format(count_erro), end='\r')
print('Empresas processadas: {}'.format(count_sucesso), end='\r')`
cê fez opção pela geração dos arquivos csv. Você p
python3 cnpj.py ../../zip/ csv ./base/ --dir
Desculpe, vc falou que rodou pelo comando python separar_csv_por_uf.py, se estiver rodando pelo python 2.7, essa parte do print end='r' dá erro, porque essa sintaxe não é válida nessa versão do python. Então, o correto é python3 separar_csv_por_uf.py
cê fez opção pela geração dos arquivos csv. Você p
python3 cnpj.py ../../zip/ csv ./base/ --dir
Ele aceitou sem as aspas? Eu uso sempre aspas no comando, tipo python3 cnpj.py "pasta_arquivosZIP" csv "pasta_arquivosCSV" --dir
Desculpe, vc falou que rodou pelo comando python separar_csv_por_uf.py, se estiver rodando pelo python 2.7, essa parte do print end='r' dá erro, porque essa sintaxe não é válida nessa versão do python. Então, o correto é python3 separar_csv_por_uf.py
@RF-Junior Digite na linha de comando python --version (se a versão for 2.x). Tente também python3 --version
Desculpe, vc falou que rodou pelo comando python separar_csv_por_uf.py, se estiver rodando pelo python 2.7, essa parte do print end='r' dá erro, porque essa sintaxe não é válida nessa versão do python. Então, o correto é python3 separar_csv_por_uf.py
Era isso mesmo... Obrigado
Desculpe, vc falou que rodou pelo comando python separar_csv_por_uf.py, se estiver rodando pelo python 2.7, essa parte do print end='r' dá erro, porque essa sintaxe não é válida nessa versão do python. Então, o correto é python3 separar_csv_por_uf.py
Era isso mesmo... Obrigado
Quer dizer então que você estava rodando o script com a versão 2.7 do Python? E agora com a versão 3.x, o script está separando certinho o arquivo empresas.csv em arquivos CSV por UF, ok?
ntão que você estava rodando o script com a versão 2.7 do Python? E agora com a versão 3.x, o script está separando certinho o arquivo empresas.csv em arquivos CSV por UF, ok?
É isso mesmo. Desculpe pela burrada.
@RF-Junior, que bom que conseguiu resolver. Fechando essa issue...
Boa tarde,
estou com o seguinte erro ao tentar separar o arquivo empresas.csv por uf.
E:\CNPJ-full-master\extra_csv>py separar_csv_por_uf.py Traceback (most recent call last): File "separar_csv_por_uf.py", line 9, in
with codecs.open(location + file, 'r+', 'utf-8') as empresas:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'
O arquivo env.example está assim: FILES_LOCATION=\E:\TEMP