domingo, 13 de maio de 2012

Separações e outras complicações

Todos sabemos que os ficheiros existem sob diversos formatos. Os ficheiros de texto são muito simples e permitem guardar informação importante relativa à execução dos nossos algoritmos evolucionários. Os dados recolhidos são posteriormente tratados estatisticamente, sendo para isso necessário que o programa usado consiga importar correctamente o nosso ficheiro. Para tal temos que ter em atenção, entre outras coisas, dois aspectos: qual o símbolo usado para separar a parte inteira da parte decimal dos números e, qual o caracter separador dos diferentes valores. No que se refere ao SPSS (ou PASW) existe um comando que nos permite verificar qual o símbolo usado para separar as partes inteira e decimal (SHOW DECIMAL) e um modo de definir esse símbolo (SET DECIMAL {DOT, COMMA}). Basta abrir uma nova janela de sintaxe (File -> New -> Syntax), escrever e executar os comandos. Para facilitar a resolução da segunda questão podemos escrever um pequeno programa em Python que trata da questão.
def convert_file(file_in, sep_in,file_out,sep_out):
    """
    Change the separator of elements in a file.
    Assume ther existence of a header. Warning: the separator must be just that: a separator!
    """
    f_in = open(file_in)
    header_in = f_in.readline()
    body_in = f_in.readlines()
    f_in.close()
    
    f_out = open(file_out,'w')
    f_out.write(header_in)
    body_out = [line_in.replace(sep_in,sep_out) for line_in in body_in]
    f_out.writelines(body_out)
    f_out.close()
Simples, não é?

Sem comentários:

Enviar um comentário