How to Read a File with Python

  • google plus

In Brief...

In Python, you open a file using the built-in open() function and passing it the path to the file you want to open. By default, files are opened as read-only.

Instructions

Here's a very basic example of opening and reading a file that is the current directory:

f = open('myfile.txt')
contents = f.read()
print(contents)

f.read() just reads the entire file as a string into a variable. So, this will just print the entire contents of the file.

Alternatively, you might want to read the file into a list, one line at a time. You can do that with the readlines() method:

f = open('myfile.txt')
file_as_list = f.readlines()
for line in file_as_list:
  print(line)

The results may surprise you though. When printed, each line will be followed by two newline characters. That's because readlines() does not strip the newline character when splitting the contents into a list. Each list item will end in a newline characters. That accounts for one of the newline character. The other newline character comes by default at the end of each call to print().

There are a couple of easy ways to address this:

  1. Explicitly pass an empty string to end in the call to print():
    f = open('myfile.txt')
    file_as_list = f.readlines()
    for line in file_as_list:
      print(line, end='')
  2. Use f.read() combined with splitlines() instead of readlines():
    f = open('myfile.txt')
    contents = f.read()
    file_as_list = contents.splitlines()
    for line in file_as_list:
      print(line)
    As splitlines() actually splits on the newline character, the newline character is not left hanging at the end of each line.

Related Training

Author: Nat Dunn

Nat Dunn founded Webucator in 2003 to combine his passion for web development with his business expertise and to help companies benefit from both.

Discuss