Files are everywhere in the digital universe. When you write a Python program, you save your code in a file. Starting an app with your VR eye implants will launch a cloud service that is also contained in a file. Even your operating system consists of a mountain of files. Working with files is an essential part of life as a software engineer.
So today we will learn how to read and write text files. And by the way. don’t be alarmed but the video you are now watching is stored in a file. There are two kinds of files: text and binary. Text files are generally human readable data, like plain text, XML, JSON, or even source code. Binary files are used for storing compiled code, app data, and media files, like images, audio, and video files.
Today we will learn how to read and write text files. To open a file in Python, you use the built-in open function. Let us take a quick look at the help text. This is a powerful and versatile function. There are pages of documentation on all the ways you can use this function. Today, we will focus on the file and the mode. For this video, we have created a folder to hold all the text files we will use.
As you can see the folder is currently empty. That is all about to change. Begin by making a sample text file, using your favorite editor. What a better example than a brief biography of Guido van Rossum, the creator of Python. This text file will be named guido_bio.txt To save time, I am pasting the text from the Benevolent Dictator’s personal website. Now, save and exit. As you can see, the file is there. Now let’s start Python and read it. One way to open a file is to call the open function with the name or path to the file. By default, it will open the file in read mode and return a file object which we call f. To read the contents of the file, call the read method. This will return all the text in the file. Finally, close the file.
We can now print the text to see that everything worked. It did. This method of opening, reading, and closing a file is simple. It only took three lines. But there is a danger. What if something goes wrong before you close the file? You do not want to litter your computer’s memory with open files. Because of this, there is a better and safer way to read files that is also 33% shorter. This method is to open a file using the with keyword. As before, the open function will create a file object and assign it to the name you specify. You can then read the contents like before, but with this technique you do not need to close the file. That is done for you. In fact, Python will close the file even if an exception occurs in the code block. That is first-class service, indeed. And just to be sure, print the text to check that everything worked. Bravo, Python. Bravo. But what happens if you try to open a file that does not exist? Then Python will raise a file not found error.
One way to handle this is to wrap the file code in a try block. We can then handle a file not found exception. For example, if the file does not exist, you might want text to store the value none. If you run this it displays none, since the file was not found. And if you replace the file name with the one we created earlier, it successfully reads the existing file.
Let us now see how to write to files. For an examplem we will write the names of the five oceans to a txt file. In this case, you need an additional argument to the open function: w for write. If you do not specify a mode, Python will open the file in read mode by default. Here, if the file oceans.txt does not exist, Python will create it. And if the file already exists, Python will overwrite it. So be careful. To write the names of each ocean to the file, loop over the list and use the write method.
Remember, when using the with technique for opening files, Python will automatically close the file for you. Let’s open the file and see if this worked. While it did write the ocean names, there are no line separators. That is because we did not write one, and Python does not assume we want them. One way to fix this is to write a new line after writing the name of each ocean.
Now, if you run the code, and then open the file, you will see each name is on a separate line. There is another way to ensure that each string is on a separate line. You can use the print function and have it print to the file by using the file keyword argument. If you run this, and look at the file, you get the same result.
Each name is on a separate line. Notice that every time we ran our code, any text in the file was overridden. This is because we open the file in write mode. But what if you would like to write to a file without overwriting any existing text? For this, you open the file in append mode by using an a after the file name. Append mode will create the file if it does not exist, but if the file does exist, then Python will append your text to the end. It will not overwrite any existing text. Let us see that this is the case. Run… and check… and applaud. With Python, reading and writing text files is a snap. And with Socratica, learning math and science is a breeze. To avoid missing any of our videos, open your browser…visit YouTube in append mode… and SUBSCRIBE to our channel. And you do not have to worry about closing your browser. Just keep watching our videos. There should be no exceptions… Thank you for watching Socratica..