9-3. Writing to an Existing File in Python

To write to an existing file in Python, you can use the open() function with specific modes. The two most common modes for writing are:

  • Append Mode ("a"): Appends content to the end of the file without removing the existing content.
  • Write Mode ("w"): Overwrites any existing content in the file.

 

Example: Appending to a File

Here's an example of how to append content to an existing file:

def main():

    # Open the file "demofile2.txt" in append mode
    f = open("demofile2.txt", "a")

    # Write content to the file
    f.write("Now the file has more content!")

    # Close the file
    f.close()

    # Open and read the file after appending
    f = open("demofile2.txt", "r")

    # Print the content of the file
    print(f.read())

    # Close the file
    f.close()

if __name__=="__main__":
    main()

 

Explanation:

  • Open the File in Append Mode: Use open("demofile2.txt", "a") to open the file in append mode.
  • Write to the File: The write() method appends the specified string to the end of the file.
  • Close the File: Always close the file after writing to ensure all changes are saved and resources are freed.
  • Read and Print the File: Reopen the file in read mode and print its content to verify that the new content has been appended.

 

Example: Overwriting a File

If you want to overwrite the existing content, you can use write mode ("w") instead:

def main():

    # Open the file "demofile2.txt" in write mode
    f = open("demofile2.txt", "w")

    # Write content to the file, overwriting any existing content
    f.write("This content will overwrite the existing content!")

    # Close the file
    f.close()

    # Open and read the file after overwriting
    f = open("demofile2.txt", "r")

    # Print the content of the file
    print(f.read())

    # Close the file
    f.close()

if __name__=="__main__":
    main()

 

Explanation:

  • Open the File in Write Mode: Use open("demofile2.txt", "w") to open the file in write mode.
  • Write to the File: The write() method overwrites any existing content with the specified string.
  • Close the File: Always close the file after writing to ensure all changes are saved and resources are freed.
  • Read and Print the File: Reopen the file in read mode and print its content to verify that the old content has been overwritten.

 

Best Practices

  • Use with Statement: Using the with statement ensures that files are properly closed after their suite finishes, even if an exception is raised.

with open("demofile2.txt", "a") as f:
    f.write("Now the file has more content!")
with open("demofile2.txt", "r") as f:
    print(f.read())

 

  • Error Handling: Handle potential errors such as file not found or permission issues using try-except blocks.
try:
    with open("demofile2.txt", "a") as f:
        f.write("Now the file has more content!")
except IOError as e:
    print(f"An error occurred: {e}")