Reading from files

14.1 Reading from files

Learning objectives

By the end of this section you should be able to

  • Understand how to open a file using the open() function.
  • Demonstrate how to read information from a file using read(), readline(), and readlines().

Opening a file

Reading information from and writing information to files is a common task in programming.

Python supports the opening of a file using the open() function.

Checkpoint

Opening a file

Concepts in Practice

Opening files

1.
What is the correct way to open a file named firstfile.txt so that the file's contents can be read into a Python program?
  1. open("firstfile")
  2. open("firstfile.txt")
  3. fileobj = open("firstfile.txt")
2.
Suppose that there is no file named input.txt. What is the result of trying to execute open("input.txt")?
  1. Error
  2. nothing
  3. "input.txt" file is created.
3.
What is the result of the following code?
fileobj = open("newfile.txt")
print(fileobj)
  1. Error
  2. Information about the object fileobj is printed.
  3. The contents of newfile.txt are printed.

Using
read()
and reading lines

Python provides functions that can be called on a file object for reading the contents of a file:

  • The read() function reads the contents of a file and returns a string.
  • The readline() function reads the next line in a file and returns a string.
  • The readlines() function reads the individual lines of a file and returns a string list containing all the lines of the file in order.

Example 14.1

Using read() and readlines()

A file called input.txt has the following contents:

    12
    55
    5
    91
    """Demonstrating read() and readlines()"""

    # Using read()
    # Open the file and associate with a file object
    infile = open("input.txt")

    # Read the contents of the file into a string
    str1 = infile.read()

    # Print str1
    print("Result of using read():")
    print(str1)

    # Always close the file once done using the file
    infile.close()
    
    # Using read()
    # Open the file and associate with a file object
    infile2 = open("input.txt")

    # Read the contents of the file into a string list
    str_list = infile2.readlines()

    # Printing the third item in the string list.
    print("Result of using readlines() and printing the third item in the string list:")
    print(str_list[2])

    # Always close the file once done using the file
    infile2.close()

The code's output is:

    Result of using read():
    12
    55
    5
    91
    Result of using readlines() printing the third item in the string list:
    5

Checkpoint

read() and readline()

Concepts in Practice

Reading files

Suppose fileobj = open("input.txt") has already been executed for each question below.

input.txt:

    Hello world!
    How are you?
4.
What is the correct way to use the read() function to read the contents of input.txt into a string file_str?
  1. file_str = read(fileobj)
  2. file_str = read("input.txt")
  3. file_str = fileobj.read()
5.
What is the correct way to use the readlines() function?
  1. file_lines = readlines(fileobj)
  2. file_lines = fileobj.readlines()
6.
What is printed as a result of executing print(fileobj.readline())?
  1. The first line of input.txt is printed.
  2. The contents of the file input.txt are printed.
  3. Error

Try It

Reading from a file

Open the file test.txt and print the file's contents.

Try It

Reading from a file line by line

The file input.txt is shown. The file represents a set of integers. Line 1 of the file specifies how many integers follow. Write a program that reads from this file and determines the average of the numbers following the first line.

input.txt

    n: 5
    25
    13
    4
    6
    19