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]
.

sábado, 2 de maio de 2015

uso do GIT

comando git status
comando git add .
comando git.commit -m 'mensagem"
comando git log



.

tkinter - habilitação do botão

try:
    import tkinter
    from tkinter import ttk
    from tkinter import messagebox
    from tkinter import StringVar
    from tkinter import IntVar
    from tkinter import BooleanVar
    print('Instanciados os módulos do tkinter.')
except ImportError:
    print('Erro na importação dos módulos do tkinter.')

Neste código o botão é ofuscado e a função é executada:

        self._bt1 = ttk.Button(self._pagina1, text="Ambiente")
        self._bt1.bind("<Button-1>", self._fbt1)
        self._bt1.configure(state=tkinter.DISABLED)

Neste código o botão é ofuscado e a função não é executada:

        self._bt1 = tkinter.Button(self._pagina1, text='Ambiente', command=self._fbt1)
        self._bt1.configure(state=tkinter.DISABLED)

Logo é necessário habilitá-lo com o seguinte código:

self._bt1.configure(state=tkinter.NORMAL)

sexta-feira, 1 de maio de 2015

Técnicas e ferramentas

.
 Uso do GIT


Inserção de logging, arquivos INI e arquivos CSV.

try:
    import csv
    print('Instanciados os módulos do csv.')
except ImportError:
    print('Erro nas importações dos módulos do csv.')

try:
    from configparser import ConfigParser
    print('Instanciados os módulos do configparser.')
except ImportError:
    print('Erro nas importações dos módulos do configparser.')

try:
    import logging
    import logging.config
    from logging.config import fileConfig
    print('Instanciados os módulos do logging.')
except ImportError:
    print('Erro nas importações dos módulos do logging.')


A manipulação de arquivos .ini é muito facilitado pela biblioteca configparser do Python.

.