Reading and writing files in Python

Learn how to read and write data to files in Python with this tutorial. Discover the basics of file handling, such as the different modes to open a file, and how to use the built-in open() function. Follow along with examples of reading and writing to files using the with statement and read() and write() methods. Improve your Python programming skills and start working with files in your projects.

Updated March 9, 2023

Hello future Python wizard, welcome to Python Help!

Today we’re going to learn how to read and write data to files in Python.

First things first, let’s talk about what a file is. A file is simply a block of data stored on a storage device like a hard drive or flash drive. In Python, you can open a file using the built-in open() function, which takes two arguments:

  • the file name
  • the mode in which you want to open the file.

The mode argument specifies whether you want to read from the file, write to the file, or both. There are three basic modes in which you can open a file: read (r), write (w), and append (a).

Let’s start with reading from a file. To do this, you need to open the file in read mode (r). Here’s an example:

with open('example.txt', 'r') as file:
    data = file.read()
    print(data)

In this example, we use the with statement to automatically close the file when we’re done with it. We open the file example.txt in read mode (‘r’), and then read the entire contents of the file using the read() method. We store the contents of the file in the variable data, and then print it to the console.

Now let’s move on to writing to a file. To do this, you need to open the file in write mode (w). Here’s an example:

with open('example.txt', 'w') as file:
    file.write('Hello, world!')

In this example, we use the with statement again to automatically close the file when we’re done with it. We open the file example.txt in write mode ('w'), and then write the string Hello, world! to the file using the write() method.

Note that when you open a file in write mode, Python will overwrite the entire contents of the file. If you want to add new data to the end of the file instead of overwriting it, you can open the file in append mode ('a') instead.

with open('example.txt', 'a') as file:
    file.write('\nHow are you?')

In this example, we open the file example.txt in append mode ('a'), and then write the string \nHow are you? to the end of the file using the write() method. The \n character at the beginning of the string is a newline character, which adds a new line before the text.

That’s it for reading and writing data to files in Python. We hope this tutorial has been helpful! Happy coding!

Hey! Do you love Python? Want to learn more about it?
Let's connect on Twitter or LinkedIn. I talk about this stuff all the time!