Understand serial files: Difference between revisions

From Computer Science Wiki
No edit summary
No edit summary
Line 52: Line 52:


<syntaxhighlight lang="python">
<syntaxhighlight lang="python">
# the line below asks a user to enter a product, and assigns the input to a variable named product_name
# the line below asks a user to enter a product, and assigns the input to a variable
product_name = input("Enter product name: ")
product_name = input("Enter product name: ")
product_code = input("Enter product code: ")
product_description = input("Enter product description: ")


# the line below opens a file for WRITING (note the w) and assigns that file to a variable named catalog
# the line below opens a file for WRITING (note the w) and assigns that file to a variable named catalog
Line 59: Line 61:


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


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


</syntaxhighlight>
</syntaxhighlight>
== Challenge 4 ==
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 ==  
== References ==  

Revision as of 10:15, 29 September 2020

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 line below asks a user to enter a product, and assigns the input to a variable
product_name = input("Enter product name: ")
product_code = input("Enter product code: ")
product_description = input("Enter product description: ")

# the line 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_name + "\n")
catalog.write(product_code + "\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]