This is an archived version of the course. Please find the latest version of the course on the main webpage.

Chapter 9: Reading and writing files

Opening and reading text files

face Josiah Wang

You have already opened text files using the open() built-in function.

file = open("test.txt", "r")
for line in file:
    print(line.strip())

When you open a file using the open() function, it returns a file object that is used to read and modify the file.

By default, Python opens a file in read-only mode ("r"). Thus, you can omit the second mode argument "r" if you are only reading the file (as we have done so far).

I have also introduced the .readlines() method that reads in all lines into a list.

file = open("test.txt", "r")
lines = file.readlines()
for line in lines:
    print(line.strip())

You can also use the .read() method to return the content of the whole file as a single str. Not recommended if the file is large!

file = open("test.txt")
content = file.read()
print(content)

If you want even more fine-grained control, you can use .read(n) to read only n characters, or .readline() to read one line. If you call .read(n) again, it will return the next n characters. For .readline(), it will be the next line. Once it reaches the end of the file, it will just return an empty string.

You should think of a file as a ‘pointer’ that keeps track of its current position in the file. The ‘pointer’ can be moved around to any position in the file.