Ordenando valores de um arquivo usando Python

Oi galera… essa é uma dica rápida de como ordenar valores de um arquivo texto usando a linguagem python. Não vou me deter em explicações adicionais  pois o código é muito fácil de entender!

Esse código é útil se você tem uma enorme quantidade de dados em um arquivo e precisa ordena-los de forma crescente ou decrescente, mas para essa ultima você deveŕa fazer uma pequena alteração!

Segue o código abaixo:

# Autor: Fernando Krein Pinheiro
# Data: 28/04/2012
# Linguagem: Python

# ========= IMPORTANTE ===========
# O codigo esta livre para usar,
# citar e compartilhar desde que
# mantida sua fonte e seu autor.
# Obrigado.

#! /usr/bin/env python

import random, time

#Cria um dado tipo lista chamado valores
valores = []

#Tamanho da lista (linhas do arquivo)
TAM = 27

#DADOS.txt e o nome do arquivo txt, troque esse nome
#para o nome de seu arquivo antes de executar o script
arquivo = open("DADOSS.txt", "r")
i = 0

#Loop para a verificacao da quantidade de valores
while i < TAM:
	num = arquivo.readlines()

	# insere os valores na lista
	valores.append(num)
	i += 1
arquivo.close()

#pega o tempo antes da ordenacao
tempo1 = time.time()

#ordena a lista usando o metodo sort()
valores.sort()

#imprime os valores ordenados
print valores

#pega o tempo novamente apos a ordenacao
tempo2 = time.time()

#faz a diferenca entre os tempos
tempo = tempo2-tempo1

#imprime o tempo em que a funcao levou para ordenar o arquivo
print "TEmpo: %2.4f "%(tempo)

#Cria um novo arquivo para inserir os valores ordenados
arquivo = open("Ordenados_Python.txt", "w")
i = 0
while i < TAM:

	#escreve os valores no arquivo
	arquivo.write(("%s"%(valores[i])))
	i += 1

arquivo.close()
#fecha o arquivo
Anúncios
por ferpinheiro Postado em Python

2 comentários em “Ordenando valores de um arquivo usando Python

  1. Ohhh… Ferdando!
    Depois de noobar muito cheguei próximo ao que pretendia!

    Ficou assim:

    from datetime import date
    import serial
    import time

    tempo = 0

    ser = serial.Serial(‘COM3’,115200)

    while ser != None:
    hoje = date.today()
    f = open(‘nomes.log’, ‘a’)
    texto = ser.readline()
    tempo = tempo + 0.1
    tempostr = str(tempo)
    f.write(tempostr + ‘,’ + texto)
    print (tempostr + ‘,’ + texto)
    f.close()

    mas ainda estou tendo problema(dúvida básica) em inserir a data e hora no nome do log.

  2. Já ia esquecendo!
    Se você já tiver quebrado a cabeça na construção de gráficos em tempo real teria como dá uma força?

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s