How to Write or Print to a File in Python

        Need to print to a file in Python? Today we'll find out how easy it is to start writing to files. We'll cover creating new files, appending existing files, and overwriting existing files.

                Open a File For Writing in Python

        You probably already know how to print on screen in Python, but you might not know how to print to a file. Fortunately, like much beginner Python programming, the syntax of file writing is simple, readable, and easy to understand.

        Related: How to Create, Import, and Reuse Your Own Module in Python

        With that in mind, let's get started.

                Create and Write to a New File in Python

        To create a new file in Python and open it for editing, use the built-in open() function and specify the file name followed by the x parameter.

                    f = open("testfile.txt", "x")

        When using the "x" parameter, you'll get an error if the file name you specified exists already.

        If it's successful, you can now write to the file using the write() method.

                    f.write("Hello, world!")

        Each line of text you "write()" will be terminated with an end-of-line character, so each additional string will be written in a new line.

        It's good practice to always close any file you open using the close() method. Otherwise, your file may not get saved to disk.


        You can also create and write to a file in Python with fewer lines using the with keyword.

                    with open("testfile.txt", "x") as f:<br/>f.write("Hello, world!")

        This approach is recommended because the "with" suite will close your file automatically after finishing, so you never have to remember to close it yourself.

        After writing your file, you can read it by opening with the r parameter and calling the read() method.

                    with open("testfile.txt", "r") as f:<br/>print(

                Write to an Existing File in Python

        If the file you want to write to exists already, and you want to add additional lines to it, you'll need to open it using the a parameter for "append."

                    with open("testfile.txt", "a") as f:<br/>f.write("I'm an additional line.")

        Anything you write after opening with the "a" parameter will be appended with a new line.

        This code also assumes your file is in the same directory your Python script is operating in. If it's in a different directory, you'll need to specify its path.

        Learn More: How to Get the Current Directory in Python

                Overwrite an Existing File in Python

        If your file already exists, but you want it overwritten instead of appended, you can do that by opening the file with the w parameter.

                    with open("testfile.txt", "w") as f:<br/>f.write("Hello, world!")

        No matter what was written in testfile.txt, the output will be "Hello, world!" when you read it.

                Troubleshooting File Writing in Python

        If the text you're printing to file is getting jumbled or misread, make sure you always open the file with the correct encoding.

                    with open("testfile.txt", "w", encoding="utf8") as f:

        Most text files these days use UTF-8 encoding, but some other common ones are ISO-8859 (iso-8859-1), UTF-16 (utf16), or Windows-1252 (cp1252).

                Print to File in Python

        Your Python toolbelt now includes the ability to print to a file, a frequent task in scripting.

        To help you in your Python-learning journey, we've put together a list of websites offering in-depth explanations and tips on Python.

        The 5 Best Websites to Learn Python Programming
                        <p class="">Want to learn Python programming? Here are the best ways to learn Python online, many of which are entirely free.</p>

About The Author

        Jordan Gloor
                                (21 Articles Published)

            Jordan is a tutor and journalist who's passionate about making Linux accessible and stress-free for everyone. He has a BA in English and a thing for hot tea. During the warm seasons, he enjoys cycling the hills of the Ozarks where he lives.

                From Jordan Gloor

                    Subscribe To Our Newsletter
                    Join our newsletter for tech tips, reviews, free ebooks, and exclusive deals!

                    One More Step…!
                    Please confirm your email address in the email we just sent you.