Agenda em Python


Autor/fonte: Jamilson Silva do Carmo
E-mail/Url: http://www.vivaolinux.com.br/script/?codigo=4126
Tags: [ agenda ]



Digg del.icio.us

Simples programa de uma agenda em Python que demostra o uso de orientação a objetos.

Script:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Criado em: Seg 17/Ago/2009 - 15:05hs
# Autor: Jamilson Silva do Carmo - jscarmo@ig.com.br
#
# Proposito do script: uma agenda bem simples. Digite --help para obter ajuda.

import shelve
import sys

# ver agenda toda
def mostra_todos_registros(agenda):
   for nome in agenda:
      print nome, agenda[nome]

# insere alguem
def insere(agenda, nome, telefone):
   agenda[nome] = telefone

# mostra um determinado nome da agenda
def busca(agenda, nome):
   try:
      print nome, agenda[nome]
   except Exception:
      print nome, 'não está na agenda.'

# apaga alguém
def apaga(agenda, nome):
   try:
      del agenda[nome]
   except Exception:
      print nome, 'não está na agenda.'

# apaga todos os nomes da agenda
def limpa(agenda):
   for nome in agenda:
      del agenda[nome]

# ajuda para --help
def ajuda():
   print "Uso:"
   print sys.argv[0], "[comando] [parâmetros]"
   print "--help: mostra esta ajuda"
   print "--show NOME: mostra o NOME e seu respectivo telefone"
   print "--show: mostra todos os nomes. É a operação padrão"
   print "--add NOME TELEFONE: adiciona NOME e TELEFONE para a agenda"
   print "--del NOME: remove NOME e seu respectivo telefone da agenda"
   print "--clean: apaga todos os nomes da agenda"

def main():
   # se não for passado nenhum comando, o comando eh para mostrar tudo
   if len(sys.argv) == 1:
      comando = "show"
   else:
      comando = sys.argv[1]
   comando.lower()

   # abre a agenda
   agenda = shelve.open('agenda.db')

   # help
   if comando in ("help", "-h", "--help", "ajuda"):
      ajuda()
   # visualização
   elif comando in ("show", "-s", "--show"):
      if len(sys.argv) == 1 or len(sys.argv) == 2:
         mostra_todos_registros(agenda)
      elif len(sys.argv) == 3:
         nome = sys.argv[2]
         busca(agenda, nome)
      else:
         ajuda()
   # deleção
   elif comando in ("del", "-d", "-del", "--del", "delete"):
      if len(sys.argv) == 3:
         nome = sys.argv[2]
         apaga(agenda, nome)
      else:
         ajuda(bin)
   # inserção
   elif comando in ("add", "-a", "-add", "--add"):
      if len(sys.argv) == 4:
         nome = sys.argv[2]
         tel = sys.argv[3]
         insere(agenda, nome, tel)
      else:
         ajuda()
   # destruição
   elif comando in ("clean", "-c", "-clean", "--clean"):
      limpa(agenda)
   else:
      ajuda()
   
   # fecha o banco
   agenda.close()

if __name__ == "__main__":
   main()




Enviado por xKuRt em 20/08/2009 às 07:32


Avaliação

Esta publicação ainda não foi avaliada!


Avaliar:


A avaliação de publicações é restrita a membros cadastrados e logados no nosso site.



Comentários

Este artigo ainda não foi comentado ou o(s) comentário(s) que foi(ram) enviado(s) a ele ainda não foi(ram) publicado(s).


Envio de comentário:




  

Quinta, 31 de Julho de 2014




Top 5 membros

Últimos membros online

  • 1em 31/07 às 08:09
  • xKuRtem 30/07 às 14:31
  • JCanecaem 26/07 às 19:02

Últimos membros cadastrados



Capa do livro
Java Simplificado


Capa do livro
Informática Para Concursos


Capa do livro
Manual de Marketing em Mídias Sociais





Hostnet

IMD