Understand serial files

From Computer Science Wiki
Python programming language[1]
  1. Serial files store data with no order to the data maintained.
  2. To search data from a serial file you begin at the start of the file and read all the data until the item is found.
  3. Data cannot be deleted from a serial file without creating a new file and copying all the data except the item you want to delete.
  4. Data cannot be changed in a serial file without creating a new file, copying all the data across to a new file, inserting the change at the appropriate point.
  5. Data can be appended to a serial file.
  6. A file can be open for reading or writing, but not reading and writing at the same time.
  7. Serial files are quite limiting, but are useful for simple data sets and configuration files. Other types of files include: sequential files where order of the data is maintained, index sequential files for large data sets and random files which allow you to access any item without searching through the file from the start.
 This content comes from our classroom resource for learning python

Challenge 2[edit]

Quote of the day challenge

Using serial files, construct a program that outputs a 'quote of the day'

  1. open a text editor, and save a file "quotes.txt"
  2. enter in 3 quotes; push enter at the end of each line:
    1. Every dog has its day
    2. Penny wise pound foolish
    3. Every exit is an entrance to somewhere else
  3. save the file. Ensure the file is in the same folder as your python program.
# we start by importing the random library so we can call random methods
import random

# the line below creates a function named random_line. The function accepts a parameter called the_quote_file
def random_line(the_quote_file):

# the line below opens the file which was passed into the function and assigns the file object to a variable named lines.
    lines = open(the_quote_file).read()

# the line below calls the splitlines() method. splitlines() changes a string into a list. Each line break is a new element in the list.  
    lines = lines.splitlines()

# finally, we return a random element from the list named "lines". 
    return random.choice(lines)

# the line below we call the function "random_line" and pass that function a file named 'quotes.txt'. We then print the output.
print(random_line('quotes.txt'))


Challenge 3[edit]

Product catalogue challenge

A product has a code, description and price. Write a program that asks the user for the data for a product, and saves the data in a serial file.

# the lines below asks a user to enter a product, and assigns the input to a variable
product_code = input("Enter product code: ")
product_price = input("Enter product price: ")
product_description = input("Enter product description: ")

# the lines below opens a file for WRITING (note the w) and assigns that file to a variable named catalog
catalog = open("product_catalog.txt", "w")

# the line below writes the variable "product_name" to the file
# at the end of each line, we add a + "\n" <-- that creates a line break, just like pressing the enter key.
catalog.write(product_code + "\n")
catalog.write(product_price + "\n")
catalog.write(product_description + "\n")

# the line below closes the file:
catalog.close()

Challenge 4[edit]

Modify the program to continue to ask for products until the user does not enter a product code. All products should be saved in the file.


References[edit]