Skip to main content

Store data easily with Python




So, we want to make a program that stores some data we create on the fly when program is running and that we want to reuse when we open the program later?
The shelve module is our module, then.

This module creates a database and other 2 files, 



First of all, let's import the module:

import shelve

but we just need to know that once we created an object
like this

    s = shelve.open("todo.db")

we can use s as a dictonary and preserve our data there.

If we, for example add this code

>>> a = input(What is your name?)
>>> what is your name?John
>>> s["name"] = a


and then we close the file

>>> s.close()

if we close the editor. Then we open it again and reopen the db,

>>> s = open("todo.py")

if we do digit

>>> print(s["name"])

we  will see this output
John

So, we stored that data in the db

Let's make another example with a simple todo program


import shelve

def todo():
    print("Insert something x=close clear=clear")
    s = shelve.open("todo.db")
    ans = input("Task?>")
    if ans == "x":
        s.close()
    elif ans == "clear":
        s["tasks"] = ""
        todo()
    else:
        print("You have to:",ans)
        try:
            s["tasks"] += ans + "\n"
            print("Previous tasks:\n",s["tasks"])
        except:
            s["tasks"] = ans + "\n"
            print("This is your first task")
        s.close()
        todo()
todo()

Let's explain what this code does...



Here is the output (not very clear, but it gives the idea):


See you later...

Comments

Popular posts from this blog

Widgets for Jupyter Notebook: a text input widget

Widgets for Jupyter notebook ¶ Let's import the module ipywidgets into the Jupyter Notebook from ipywidgets import widgets from ipywidgets import * from traitlets import * Now we import the display function from IPython ¶ let's attach a function to the event on_submit After we run this cell, we can go up and write something in the text widget and after you submit the text you wrote will be printed after the cell from IPython.display import display text = widgets . Text () display ( text ) def handle_submit ( sender ): print ( "Thank you for entering this text:" , text . value ) text . on_submit ( handle_submit ) Thank you for entering this text: Ciao

Image in Jupyter and PIL step by step

Hi, """ Hi, we will see a step by step tutorial about PIL and IPython.core.display modules to create images from other images and diplaying them in Jupyter notebook """ # What we will do # Create a card # 1. Take a pic of a heart # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle # 4. show the card """ As first step wi will simply display an image on the notebook. I will show two way to display the image with 'display' from IPhyton a. Using the open method of PIL.Image (named Img) b. Using the Image method from the IPython.core.display module """ # 1. Take the pic of a heart from IPython.core.display import Image , display from PIL import Image as Img heart = 'img/heart.png' display ( Image ( heart )) display ( Img . open ( heart )) # 2. Create an image blanck the size of a card 90*130 # 3. Paste the heart in the middle #...

Let's draw a circle with PIL in Python

Let's continue making our coding around PIL. Let's start with some basic drawing: a circle from PIL import Image , ImageDraw img = Image . new ( "RGB" ,( 60 , 60 ), 'white' ) dr = ImageDraw . Draw ( img ) dr . ellipse (( 0 , 0 , 60 , 60 ), 'yellow' ) img . show () this is the image produced *If you use jupyter notebook, just write img at the end to see the output.