Python creando una base de datos con Diccionarios!!! TODO en PYTHON

in #spanish6 years ago (edited)

Hola queridos amigos, Dios Bendiga a Venezuela.

Desde hace algunos meses les he hablado de crear una Base de datos con Diccionario Python y algunos TXT, y ¡realmente se puede!, es muy interesante poder usar el Poder de los diccionario como una base de datos, ya que el diccionario se guarda en memoria RAM lo que hace que sea casi instantánea cualquier llamada a estos diccionarios.

Es interesante la estructura de las variables de Python, por ejemplo tenemos:

  • Cadenas
  • Listas 
  • Tuplas
  • Diccionarios

Las cadenas, Listas y Tuplas comparten muchos métodos en común, pero tienen sus diferencias, por ejemplo una cadena puede verse como una lista de caracteres, las listas pueden contener cadenas , Tuplas y hasta diccionarios y son mutables es decir que pueden cambiar, mientras que las Tuplas son muy parecidas a las Listas comparten sus métodos pero no pueden cambiar se definen y ya así quedan, pero son muy interesantes por que pesan mucho menos que una lista.

Los diccionarios para mi son otro nivel en la programación con Python, muchas veces olvido algunos métodos de los diccionarios, es como mágico crear diccionarios que Funcionen realmente como queremos.

Y hoy vamos a ver algunos ejemplos de código que he utilizado en mis programas pero siempre he usado un código sencillo para agregar datos tal como si fuera una Base de Datos mi Diccionario en un TXT, lo cargo y ya esta, funciona muy rápido y es re-utilizable.

Ahora vamos a ver un contador de letras pero esta ves tenemos un archivo que guarda todas las entradas que le pasemos y va guardando la repetición de las letras, así podemos ir agregando y agregando datos y funcionara como una base de datos Pythonica, aquí el código:

fichero = open("BD_cuenta_letras.txt")

dato = fichero.readline()

dict_caracteres = dato.strip()

if dict_caracteres != "":

    dict_caracteres = eval(dict_caracteres)

else: 

    dict_caracteres = {}

cadena = raw_input("ESCRIBA UNA CADENA DE CARACTERES: ")

for caracter in cadena:

            if caracter not in dict_caracteres:

                dict_caracteres[caracter] = 1

            else:

                dict_caracteres[caracter] = dict_caracteres[caracter]+1

print dict_caracteres

fichero = open("BD_cuenta_letras.txt" ,"w")

fichero.write(str(dict_caracteres))

fichero.close()

Revisemos el código:

fichero = open("BD_cuenta_letras.txt")

Primero abrimos un fichero de nombre: BD_cuenta_letras.txt puede tener cualquier nombre, pero yo le coloque ese, debe estar creado ojo.

Seguidamente pasamos a leer el archivo y eliminar las lineas y espacios en blanco a ambos lados de la cadena: 

dato = fichero.readline()

dict_caracteres = dato.strip()

Ahora evaluamos los datos que nos traemos de los archivos y pedimos por consola una cadena a agregar al diccionario de nuestra base de datos.

El Condicional es para saber si el Diccionario esta en el TXT de lo contrario tenemos que crearlo!

if dict_caracteres != "":

    dict_caracteres = eval(dict_caracteres)

else: 

    dict_caracteres = {}

cadena = raw_input("ESCRIBA UNA CADENA DE CARACTERES: ")

Ahora necesitamos combinar el diccionario con la cadena, esto lo hacemos con un for, cada ves que encontremos una letra que no existe en el diccionario el bucle la mandara a agregarla:

for caracter in cadena:

            if caracter not in dict_caracteres:

                dict_caracteres[caracter] = 1

Si el condicional verifica y la letra "si existe" en el diccionario le suma 1 a las veces que existía ya.


            else:

                dict_caracteres[caracter] = dict_caracteres[caracter]+1


Ya terminado el ciclo se imprime el diccionario si se desea para verificar la salida:

print dict_caracteres

Ahora procedemos a abrir el Archivo en modo escritura y agregamos el nuevo diccionario que no es mas que el mismo con los cambios.

fichero = open("BD_cuenta_letras.txt" ,"w")

fichero.write(str(dict_caracteres))

fichero.close()


Ya sabemos que funciona ahora te toca a ti probarlo, y  esperar la siguiente entrada donde te diré donde estoy usando este sencillo código que me ayuda en muchos programas ademas, veremos otras opciones de formatear esos feos símbolos y haremos unas gráficas bien interesantes de Nube.

Que Dios Bendiga a Venezuela, hasta la Próxima.


No te olvides de votar @cervantes  como witness en esta página: https://steemit.com/~witnesses 

Únete a nuestro servidor de Cervantes en Discord https://discord.gg/x9zahRx


Coin Marketplace

STEEM 0.19
TRX 0.14
JST 0.029
BTC 66391.72
ETH 3189.14
USDT 1.00
SBD 2.60