21.12.2022 Views

python_para_desenvolvedores_2ed

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

342 Respostas dos exercícios III

import time

yield (r, g, b)

tt = time.time()

l = rgb_lst()

print time.time() - tt

tt = time.time()

for color in rgb_gen(): pass

print time.time() - tt

4. Implementar um gerador que leia um arquivo e retorne uma lista de tuplas

com os dados (o separador de campo do arquivo é vírgula), eliminando as

linhas vazias. Caso ocorra algum problema, imprima uma mensagem de

aviso e encerre o programa.

Solução:

# -*- coding: latin1 -*-

def load_csv(fn):

try:

for line in file(fn):

new_line = line.strip()

if new_line:

yield tuple(new_line.split(','))

except:

print 'Ocorreu um erro ao ler o arquivo', fn

raise SystemExit

# Teste

for line in load_csv('teste.csv'):

print line

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!