Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Acessar um arquivo .CSV divido por PIPE e alterar para Ponto e vírgula

Boa tarde pessoal tudo bem?

Eu tenho um arquivo .CSV que é separado por PIPE eu preciso ler esse arquivo de um diretório e grava-lo em outro diretório porém o command de separação tem que ser trocado por ; Ponto e vírgula e a ideia que tenho hoje é ler o arquivo linha a linha e trocar os caracteres, há alguma outra forma? Como posso começar a pesquisar pra chegar pelo menos perto disso?

Obrigado desde já;

5 respostas

Luiz,

Vc esta no caminho certo, com sua analise! Não tem muito mistério. Vc tem um exemplo do arquivo csv para ter uma noção do que vc quer?

Opa Welton,

Vou passar uma linha do arquivo porque ele é bem grande rsrsrsrs

01|INCOMING - CHARGEBACK |0000000000000|05480877325074322420022|F68909|001|00| |00| |514087|1013 |0000000000|019434510|00000| |005|Rejei‡òo de Reapresenta‡òo | | |21.11.2017|30.04.2018| |28.04.2018| | | | | | |0| | | | |00000000000|986| | |L|000247194274|1801116000009|001|051| |001|003|019434510|019434510|60106|NAO|S |00| |01|Pendente tratamento |000|Tecnologias nòo Parametrizadas | |001|Chargeback | |000|000000000000000|00|AGUARDANDO|00| |00000000000000000|00000000000000000|+0000000000000000|00000000000000000|00000000000000000|+0000000000000000|00000000000002060|00000000000007000|N| | | | | | | | |00000000000000000|00000000000000000|00000000000000015|00000000000000000|00000000000000000|00000000000000000|00000000000000000|0000082614|C10101C19001 | |000007432242|N|

Dividi a resposta porque não cabia rsrs

E eu preciso converter ele para isso aqui:

01;INCOMING - CHARGEBACK ;0000000000000;05480877325074322420022;F68909;001;00; ;00; ;514087;1013 ;0000000000;019434510;00000; ;005;Rejei‡òo de Reapresenta‡òo ; ; ;21.11.2017;30.04.2018; ;28.04.2018; ; ; ; ; ; ;0; ; ; ; ;00000000000;986; ; ;L;000247194274;1801116000009;001;051; ;001;003;019434510;019434510;60106;NAO;S ;00; ;01;Pendente tratamento ;000;Tecnologias nòo Parametrizadas ; ;001;Chargeback ; ;000;000000000000000;00;AGUARDANDO;00; ;00000000000000000;00000000000000000;+0000000000000000;00000000000000000;00000000000000000;+0000000000000000;00000000000002060;00000000000007000;N; ; ; ; ; ; ; ; ;00000000000000000;00000000000000000;00000000000000015;00000000000000000;00000000000000000;00000000000000000;00000000000000000;0000082614;C10101C19001 ; ;000007

A forma que pensei é, abrir o primeiro arquivo para leitura, percorrer linha a linha e trocar os separadores, e gravar em um arquivo pra escrita. E queria saber se essa é a única solução ou há algo mais simples que posso fazer?

solução!

Luiz,

É isso mesmo, vc esta certo no que pensou! Existe várias formas, eu usei Expressões Regulares para fazer isso! Com "import re", vc importa o modulo expressões regulares, lê o csv e usa o comando re.sub para substituir qualquer String.