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.