Publicada por brunoco em 08/06/2007 - 19:04h:
* brunoco usa Fedora

Amigos,

Preciso retirar o último caracter de cada linha de um arquivo .txt, no caso o caracter que preciso tirar é o último ";" da linha.

Pois necessito carregar um arquivo exportado para txt com delimitador ";" para uma base POSTGRES utilizando o comando COPY afim de carregar o arquivo. Porém como o arquivo termina com ; ele não endente que há uma quebra de linha e acha que após o ultimo ";" da linha virá mais uma coluna e então acusa no banco que estou tentando carregar um campo a mais do que a estrutura de minha tabela.

Exemplo: coluna1;coluna2;coluna3;coluna4;
preciso que fique:
coluna1;coluna2;coluna3;coluna4

Se alguém puder me ajudar agradeço.

Abraço,

  
 
Resposta de alexandremas em 11/06/2007 - 17:51h:
* alexandremas usa Debian
* alexandremas tem conceito: 9.5
 


use o script em python abaixo. O único problema que detectei é que da forma que está, se a última linha não for uma linha em branco, ele irá comer a última letra do arquivo. Então inclua uma linha em branco ao final para dar certo.

salve o texto abaixo como converter.py e chame usando:
python converter.py
mude os nomes dos arquivos na última linha
---------------------------------------------
import os, sys

def converter(filefrom, fileto):
arquivo = open(filefrom,"r")
salvarcomo = open(fileto,"w")
#newline = []
for line in arquivo:
newline = line[0:-3]+"\n"
salvarcomo.write(newline)
return "arquivo "+filefrom+" convertido para "+fileto

print converter("original.txt","copia.txt")
-----------------------------------------------------------------------------------

  


ATENÇÃO: Antes de contribuir com uma resposta, leia o artigo Qualidade de respostas e certifique-se de que esteja realmente contribuindo com a comunidade. Muitas vezes o ímpeto de contribuir nos leva a atrapalhar ao invés de ajudar.

Contribuir com resposta



CAPTCHA
[ Recarregar imagem ]

Digite o código acima:

  
* Nota: só é possível enviar respostas usuário que possui conta e esteja logado com ela, caso contrário sua mensagem será perdida.



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts