quinta-feira, 12 de novembro de 2015

Configurador

Desenvolvimento do configurador do Atemga 32 da Atmel faz parte de algumas ideia antigas consolidada agora.

Foi desenvolvidas várias páginas seguindo o manual (doc2503) fornecido pela Atmel em seu site oficial.

Alguns periféricos que são compostos de mais de um permitiram concentrar todos as suas funcionalidades em um único arquivo texto porém outros foram necessários dividi-los em mais de um arquivo.

A página de controle de geração do código.

Arquivamento das informações geradas para uso.

GIT do trabalho:


GIT de casa:

.

quarta-feira, 6 de maio de 2015

Escrita e Leitura de CSV como dicionário

class csv.DictReader(csvfile[, fieldnames=None[, restkey=None[, restval=None[, dialect='excel'[, *args, **kwds]]]]])

Criar um objeto que funciona como um leitor regular mas mapeia as informações ler em um dicionário cujas chaves são dadas pelo parâmetro fieldnames opcional.

Se o parâmetro fieldnames for omitido, os valores na primeira linha da csvfile vai ser utilizado como os nomes de campos. [1]

#************************************************************************
#!/usr/bin/python
# -*- coding: utf-8 -*-
#************************************************************************
import csv
#************************************************************************
class Teste(object):
    '''Classe
    '''
    _atributoclasseINVISIVEL = []
    atributoclasseVISIVEL = []
   
    def __init__(self):#trata os diretórios como pacotes.
        '''init
        '''
        vatributolocali = 't'

        print('init')

    def leituraCSV():
        '''leitura
        '''
        vatributolocall = 0
       
        try:
            with open('teste.csv') as csvfile:
                reader = csv.DictReader(csvfile)
                for row in reader:
                    print(row['primeiro_nome'], row['segundo_nome'])
        except:
            print('Erro leitura.')

    def escritaCSV():
        '''escrita
        '''
        vatributolocale = 3
       
        try:
            with open('teste.csv', 'w') as csvfile:
                fieldnames = ['primeiro_nome', 'segundo_nome']
                writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
               
                writer.writeheader()
                writer.writerow({'primeiro_nome': 'Ubiratan', 'segundo_nome': 'Uaatsim'})
                writer.writerow({'primeiro_nome': 'Lucia', 'segundo_nome': 'Souza'})
                writer.writerow({'primeiro_nome': 'Marina', 'segundo_nome': 'Persona'})
        except:
            print('Erro escrita.')
#************************************************************************


#************************************************************************
if __name__ == '__main__':#pode ser usado como script ou módulo.
    Teste()
    print ('Classe instanciada - Teste.')
#************************************************************************


Execução do script.
Arquivo: teste.csv


#--------------------------------------------------------------------------------------------
    def escritaCSV2():
        '''escrita
        '''
        vatributolocale = 3

        cabecalho = ['PESSOA 1','PESSOA 2','PESSOA 3']
        linha = [{'PESSOA 1':'Lucia Souza','PESSOA 2':'Marina Persona','PESSOA 3':'Marina Persona'}}]
        linha2 = [{'PESSOA 1':'Itzá I','PESSOA 2':'Guaranis','PESSOA 3':'Tupinambás'}]
       
        try:
            with open('teste2.csv', 'w') as f:
                writer = csv.DictWriter(f, fieldnames=cabecalho)
                writer.writeheader()
                writer.writerows(linha)
                writer.writerows(linha2)
        except:
            print('Erro escrita 2.')

    def leituraCSV2():
        '''leitura
        '''
        vatributolocall = 0
       
        try:
            with open('teste2.csv') as f:
                reader = csv.DictReader(f)
                for row in reader:
                    pass
        except:
            print('Erro leitura 2.')
           
        print(row['PESSOA 1'], row['PESSOA 2'],row['PESSOA 3'])
       
#************************************************************************


Arquivo: teste2.csv

Referências
[1] https://docs.python.org/2/library/csv.html
[2]
.