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.

Take our Introduction to Python Training course for free.

See the Course Outline and Register

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.

Webucator provides instructor-led training to students throughout the US and Canada. We have trained over 90,000 students from over 16,000 organizations on technologies such as Microsoft ASP.NET, Microsoft Office, XML, Windows, Java, Adobe, HTML5, JavaScript, Angular, and much more. Check out our complete course catalog.

Categories

Courses

Author: Nat Dunn

Nat Dunn founded Webucator in 2003 to combine his passion for technical training with his business expertise and to help companies benefit from both. His previous experience was in sales, business and technical training, and management. Nat has an MBA from Harvard Business School and a BA in International Relations from Pomona College.

Discuss