Publicado el Deja un comentario

Python. Agenda de contactos

Crea una agenda de contactos y guardalos en un archivo csv que podras abrir con editor de textos o excel.
Para crear la agenda usaremos clases, funciones, metodos, etc.

El codigo utilizado es el siguiente:


# -*-coding:utf-8 -*-

"""
Created on Fri Dic 06 07:48:08 2019

@author: Jose
"""

#modulos
import csv
import itertools
import re

#clases
class Contacto:
nuevoId=itertools.count()
def __init__(self,nombre,apellidos,empresa,fijo,movil):
self.codigo=next(self.nuevoId)
self.nombre=nombre
self.apellidos=apellidos
self.empresa=empresa
self.fijo=fijo
self.movil=movil
class Agenda:
def __init__(self):
self.contactos=[]
def ordenarNombre(self):
self.contactos.sort(key=lambda contacto: contacto.nombre)
def ordenarApellidos(self):
self.contactos.sort(key=lambda contacto: contacto.apellidos)
def añadir(self,nombre,apellidos,empresa,fijo,movil):
contacto=Contacto(nombre,apellidos,empresa,fijo,movil)
self.contactos.append(contacto)
def mostrarTodos(self):
self.submenuOrden()
for contacto in self.contactos:
self.imprimeContacto(contacto)
def buscar(self,textoBuscar):
encontrado=0
for contacto in self.contactos:
if(re.findall(textoBuscar,contacto.nombre)) or (re.findall(textoBuscar,contacto.apellidos)):
self.imprimeContacto(contacto)
encontrado=encontrado+1
self.submenuBuscar(contacto.codigo)
if encontrado==0:
self.noEncontrado()
def borrar(self,codigo):
for contacto in self.contactos:
if contacto.codigo==codigo:
print('---*---*---*---*---*---*---*---*')
print('Quieres borrarlo? (s/n)')
print('---*---*---*---*---*---*---*---*')
opcion=str(input(""))
if opcion=='s' or opcion=='S':
print('Borrando contacto!!!')
del self.contactos[codigo]
elif opcion=='n' or opcion=='N':
break
def modificar(self,codigo):
for contacto in self.contactos:
if contacto.codigo==codigo:
del self.contactos[codigo]
nombre=str(input('Escribe el nombre: '))
apellidos=str(input('Escribe los apellidos: '))
empresa=str(input('Escribe la empresa: '))
fijo=str(input('Escribe el fijo: '))
movil=str(input('Escribe el movil: '))
contacto=Contacto(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)
self.contactos.append(contacto)
break
def submenuBuscar(self,codigo):
print('---*---*---*---*---*---*---*---*')
print('Quieres (m)odificarlo o (b)orrarlo? ')
print('---*---*---*---*---*---*---*---*')
opcion=str(input(""))
if opcion=='m' or opcion=='M':
self.modificar(codigo)
elif opcion=='b' or opcion=='B':
self.borrar(codigo)
else:
print('Continuamos sin realizar modificacion alguna')
def submenuOrden(self):
print('---*---*---*---*---*---*---*---*')
print('Quieres ordenar por (n)ombre o por (a)pellidos?')
print('---*---*---*---*---*---*---*---*')
opcion=str(input(""))
if opcion=='n' or opcion=='N':
self.ordenarNombre()
elif opcion=='a' or opcion=='A':
self.ordenarApellidos()

def grabar(self):
with open('agenda.csv','w') as fichero:
escribir=csv.writer(fichero)
escribir.writerow(('codigo','nombre','apellidos','empresa','fijo','movil'))
for contacto in self.contactos:
escribir.writerow((contacto.codigo,contacto.nombre,contacto.apellidos,contacto.empresa,contacto.fijo,contacto.movil))
def imprimeContacto(self,contacto):
print('---*---*---*---*---*---*---*---*')
print('---*---*---*---*---*---*---*---*')
print('Codigo: {}'.format(contacto.codigo))
print('Nombre: {}'.format(contacto.nombre))
print('Apellidos: {}'.format(contacto.apellidos))
print('Empresa: {}'.format(contacto.empresa))
print('Fijo: {}'.format(contacto.fijo))
print('Movil: {}'.format(contacto.movil))
print('---*---*---*---*---*---*---*---*')
print('---*---*---*---*---*---*---*---*')
def noEncontrado(self):
print('---*---*---*---*---*---*---*---*')
print('---*---*---*---*---*---*---*---*')
print('Contacto no encontrado')
print('---*---*---*---*---*---*---*---*')
print('---*---*---*---*---*---*---*---*')
def ejecutar():
agenda=Agenda()
try:
with open('agenda.csv','r') as fichero:
lector=csv.DictReader(fichero,delimiter=',')
for fila in lector:
agenda.añadir(fila['nombre'].capitalize(),fila['apellidos'].capitalize(),fila['empresa'].capitalize(),fila['fijo'].capitalize(),fila['movil'].capitalize())
except:
print('Error al abrir fichero o que no existe aun')
while True:
menu=str(input("""
\nSelecciona una opcion\n
1 Mostrar lista de contactos
2 Buscar contacto
3 Añadir contacto
0 Salir \n\n
"""))
if menu=='1':
agenda.mostrarTodos()
elif menu=='2':
texto=str(input('Escribe el texto a buscar en contactos: '))
agenda.buscar(texto.capitalize())
agenda.grabar()
elif menu=='3':
nombre=str(input('Escribe el nombre: '))
apellidos=str(input('Escribe los apellidos: '))
empresa=str(input('Escribe la empresa: '))
fijo=str(input('Escribe el fijo: '))
movil=str(input('Escribe el movil: '))
agenda.añadir(nombre.capitalize(),apellidos.capitalize(),empresa.capitalize(),fijo,movil)
agenda.grabar()
elif menu=='0':
print('Hasta pronto!!!')
agenda.grabar()
break
else:
print('Opcion no valida!!!')
if __name__=='__main__':
ejecutar()

Please follow and like us:
Publicado el Deja un comentario

Aplicacion Cajas Diarias

En el siguiente video podras ver la ultima aplicacion que he creado con el lenguaje de programacion python, es una aplicacion sencilla que al introducirle los datos de efectivo y tarjetas del comercio, genera automaticamente un archivo de texto con los datos necesarios para contabilizar la venta y los cobros, guardando dichos datos en una base de datos sqlite que se puede consultar en cualquier momento.
El codigo completo de la aplicacion esta en github.

Please follow and like us:
Publicado el Deja un comentario

92 Python. Aplicacion Caja diaria

Ejemplo de aplicacion creada con Python, para generar los datos que usaremos para crear los asientos contables requeridos de ventas sobre las cajas diarias.
Es una aplicacion con interfaz grafica en la que se introducen los datos de efectivo y tarjetas de dos tiendas y calcula la venta total, desglosa la base imponible y el iva, pasando seguidamente a guardar los datos en una base de datos sqlite y en un archivo de texto que imprimira inmediatamente.
Puedes ver el codigo completo en github.

Please follow and like us:
Publicado el Deja un comentario

69 Python. Escritura / lectura de archivos

Para escribir y leer ficheros con python tenemos que realizar 3 pasos:

  1. Abrir fichero indicando si lo abrimos en modo lectura o escritura.
  2. Escribir o leer del fichero.
  3. Cerrar el fichero, en cuanto no sea necesario, con close.

Veamos un ejemplo sencillo:

#Escritura fichero
fichero=open(‘fichero.txt’,’w’)
fichero.write(‘Escribo este texto en el fichero’)
fichero.close()
#Lectura fichero
fichero=open(‘fichero.txt’,’r’)
print(fichero.read())
fichero.close()

En la apertura de fichero deberiamos asegurar que no de error, para ello podriamos encerrar el codigo dentro de un bloque con try, como en el siguiente ejemplo:

#Asegurar que no de error

try:

    f=open(‘fichero.txt’)   

print(f.read())   

print(‘fichero correcto’)   

f.close()

except:

    print(‘error con el fichero’)

#esto de ejecuta siempre

finally:   

print(‘fin de codigo’)

Vamos a crear 2 funciones, una para escribir en archivos y otra para leerlos.

#Escribir

def escribe(fichero,texto):

    fichero=open(fichero,’w’)

    fichero.write(texto)

    fichero.close()

#Leer

def lee(fichero):   

fichero=open(fichero,’r’)   

texto=fichero.read()   

fichero.close()   

return texto

#Llamamos a las funciones

escribe(‘fichero.txt’,’hola desde llamada a funcion’)

print(lee(‘fichero.txt’))

Please follow and like us:
Publicado el Deja un comentario

41 Python. Imprime archivo

En el siguiente video vemos como crear un archivo de texto con python e imprimirlo por la impresora predeterminada.

import osdef archivaImprime(di,me,an,texto):    #guarda texto en archivo con nombre fecha    fecha=str(an)+str(me)+str(di)    fecha=str(fecha+”.txt”)    escritura=open(fecha,”w”)    escritura.write(texto)    escritura.close()    #imprime en impresora    print(texto)    os.startfile(fecha,”print”)    print(“fichero grabado e imprimido”)    #llamamos a la funcionarchivaImprime(12,10,18,”prueba de impresion”)

Please follow and like us:
Publicado el Deja un comentario

36 Python. Crea archivo PDF

Crea archivos PDF usando la libreria reportlab con Python.
Lo primero que vemos en el video es como instalar la libreria para Python usando pip, para ello debemos abrir nuestra ventana de comandos y dirigirnos al directorio donde tenemos instalado Python. Una vez situados en el directorio de scripts de Python, comprobamos que tenemos pip instalado y procedemos a ejecutar el comando para instalar la libreria Reportlab.
En el video podras ver la web de la libreria donde encontrar la documentacion necesaria para seguir practicando y realizar documentos mas complejos.

from reportlab.pdfgen import canvas
from reportlab.lib.pagesizes import letter
c=canvas.Canvas(“archivoPdf.pdf”)
#ancho de linea
c.setLineWidth(.3)
#fuente y tamaño
c.setFont(‘Helvetica’,14)
#dibuja texto en pos X e Y por puntos, 1pt = 1/72 pulgadas
c.drawString(120,760,”Hola en pdf!”)
#pos x1 y1 x2 y2
c.line(120,700,590,747)
#circulo damos x y radio stroke y relleno
c.circle(120,720,20,1,1)
c.save()

Please follow and like us:
Publicado el Deja un comentario

10 Python. Archivos

Vemos como crear archivos de textos desde Python, para grabar datos en el archivo.
Si el archivo no existe lo creara y si existe lo sobreescribe.
Pasamos despues a ver como se leen los datos del archivo.


#GUARDAR EN ARCHIVO
escritura=open(“archivo.txt”,”w”)
escritura.write(“Este texto se escribe en el archivo n y esto lo escribe en otra linea”)
escritura.close()
print(“fichero creado y grabado el texto”)
#ABRIR ARCHIVO Y MOSTRAR DATOS
lectura=open(“archivo.txt”,”r”)
leer=lectura.read()
print(“leemos todo”)
print(leer)
lectura.close()
lectura=open(“archivo.txt”,”r”)
leer=lectura.readline()
print(“leemos una linea”)
print(leer)
lectura.close()

Please follow and like us:
Publicado el Deja un comentario

15 Java. Lectura y escritura en archivos de texto

Como escribir y leer archivos de texto desde java con eclipse.

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.PrintWriter;

public class fichero {
    public File archivo=null;
    public FileReader lector=null;
    public BufferedReader br=null;
    public FileWriter fichero=null;
    public PrintWriter escritor=null;
    void leer(String nombreArchivo){
        try {
            archivo=new File(nombreArchivo);
            lector=new FileReader(archivo);
            br=new BufferedReader(lector);
            String linea;
            while((linea=br.readLine())!=null){
                System.out.println(linea);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
            try {
                if(null!=lector){
                    lector.close();
                }
            }catch(Exception e2){
                e2.printStackTrace();
            }
        }
    }
    void escribir(String nombreArchivo){
        try {
            fichero=new FileWriter(nombreArchivo);
            escritor=new PrintWriter(fichero);
            for(int i=0;i<15;i++){
                escritor.println(“Linea “+i);
            }
        }catch(Exception e){
            e.printStackTrace();
        }finally{
           
            try {
                if(null!=escritor){
                    escritor.close();
                }
            }catch(Exception e2){
                e2.printStackTrace();
            }
        }
    }
}

public class principal {

    public static void main(String[] args) {
        fichero File=new fichero();
        File.escribir(“archivoTexto.txt”);
        File.leer(“archivoTexto.txt”);

    }

}

Please follow and like us:
Publicado el Deja un comentario

Php – 19. Subir archivos

En esta entrada os pongo un ejemplo de codigo para subir un archivo al servidor desde php, segun el siguiente codigo:

<!DOCTYPE html>
<html>

<head>
<meta charset=’utf-8′>
<link rel=”stylesheet” href=”hojadeestilo.css”>
<title>Subir archivo</title>
</head>
<body>
<header>
<h1>Subir archivo</h1>
<figure><img src=”milogo.jpeg”/></figure>
</header>

<nav>
<ul>
<li><a href=”index.html”>Inicio</a></li>
<li><a href=”acercade.html”>Acerca de</a></li>
</ul>
</nav>
<section>
<article>
<hgroup>
<h1>Formulario de subida</h1>
<h2>archivos</h2>
</hgroup>  

 <?php
  if(isset($_FILES[“archivo”])){        
$archivo = $_FILES[“archivo”][‘name’];
// guardamos el archivo a la carpeta imagenes que debe estar creada
$destino = “imagenes/_”.$archivo;
copy($_FILES[‘archivo’][‘tmp_name’],$destino);
 echo”<p>Archivo subido</p>”.$archivo;
 ?>
<form method=”post” action=”
<?php
echo $_SERVER[‘PHP_SELF’];
?>
“enctype=”multipart/form-data”>
¡Sube tu foto!: <input type=”file” name=”archivo” />
 <input type=”submit” name=”enviar” value=”Enviar” />
 </form>
 <?php
  }else {  
  ?>
<form method=”post” action=”
<?php echo $_SERVER[‘PHP_SELF’]; ?>
“enctype=”multipart/form-data”>
 ¡Sube tu foto!: <input type=”file” name=”archivo” />
 <input type=”submit” name=”enviar” value=”Enviar” />
 </form>

</article>

</section>

<aside>
<h1>Siguenos en:</h1>
<ul>
<li><a href=”facebook.html”>Facebook</a>
</li>
<li><a href=”twitter.html”>Twitter</a></li>
</ul>
</aside>
<footer>

<p>Pagina creada por Ticoticotaa @2016</p>

<ul>
<li><a href=”contacto.html”>Contacto</a>
</li>
<li><a href=”mapaweb.html”>Mapa Web</a></li>
</ul>
</footer>
</body>
</html>

El codigo php hace que compruebe si se ha enviado un archivo, en dicho caso sube el archivo al servidor y lo renombra.
Dentro del codigo he incluido un “if” (estructura condicional) mezclado con html, que comprueba si se mando el archivo, en caso negativo muestra el formulario y en caso positivo confirma el envio del archivo y vuelve a mostrar el formulario.
He incluido la autollamada en el mismo archivo (PHP_SELF) para evitar crear 2 archivos como en anteriores ocasiones.

Please follow and like us: