In this post, we will learn 5 ways to append to existing text file Python with the help of examples. We will use the OS module, file write(), and print() method.
1. with statement to Append to existing text file Python
To append a new line to the existing file, the first step is to open a file in append mode ‘a’ or ‘ab’, and in this mode, the writer cursor is positioned at end of the file.
The access mode controls the operation we have to perform on an opened file, by using “with the statement ( “with open(‘filename’, ‘a’) as file:”) it creates a new file if does not exist or when the file already exists append data at end of the file and return file object.
Syntax
with open('filename', 'a') as file:
Parameters
- Filename : The name of file we want to write at given path.
- mode : It control what operation we are performing on opened file.
Existing file content :data.txt
welcome to devenum.com
How are you.
Python Program to append text to existing file
with open("data.txt", "a") as file:
file.write("Good Morning! ")
Output
Welcome to devenum.com
How are youGood Morning!
2. Append to existing text file new line
To open a file in access mode ‘a’ and append data in newline will work well if the file already exists, when the file does not exist it create a new file and append a blank file at beginning of the line. In this example, a newline will and if file not already exists.
Python Program Example
with open("data1.txt", "a") as file:
file.write("\n")
file.write("Good Morning!\n ")
Output
Good Morning!
2.1 Append newline(\n) if file exist
In this example, To overcome the above issue we have opened a file in append mode ‘a+’ for reading and writing. let us understand the below steps of how to add a newline at end of the file either the new file exists or already exists.
Steps to append new line in existsing file
- Move the file read-write position at beginning of the file by using file.seek(0).
- Read some contents of the file by using the file.read().
- If the content length is greater than 0 then we will added a newline character(\n)
- when the file does not exist will not append a new line character.
Python Program Example
with open("data1.txt", "a+") as file:
file.seek(0)
content = file.read(30)
if len(content) > 0 :
file.write("\n")
file.write("Good Morinig!")
Output
Welcome to devenum.com
How are you
Good Morning!
3. Print() to append to a file in Python
In this example, we have opened files in append file mode and used the print() method instead of write() method to append to a file in Python.
Python Program to append text to existing file
with open("data1.txt", "a+") as file:
print('Good Morinig!', file=file)
Output
Welcome to devenum.com
How are you
Good Morning!
4. OS module to Append to text file
In this example, we are using the OS module to append to a text file in Python. We have moved the writing position at end of the file by using file.seek(0, os.SEEK_END) method.
Python Program to append text to existing file
import os
with open("data1.txt", "a+") as file:
file.seek(0, os.SEEK_END)
file.write("thanks for visiting us")
Output
Welcome to devenum.com
How are you
Good Morning!thanks for visiting us
5. Append mutiple lines in existing text file
In this example, we are opening the file in access mode append “a+”.we are appending multiple list lines at end of the file by iterating a list and writing its content.
Steps to append multiple line in existing file
- Set Read-write position at beginning of the file by using file.seek(0).
- Read some contents of the file by using the file.read() and check its length
- If the content length is greater than 0 then append_newline =True a newline character(\n) will append atend of file else append_newline =False new line character not append at end of file.
- iterating over list (list_contents) using for loop aInnd writing the content to file.
Python Program to append text existing file
list_contents = ['Hi!','thanks','for','visiting Us']
with open("data1.txt", "a+") as file:
append_newline = False
file.seek(0)
content = file.read(30)
if len(content) > 0 :
bool_append_newline= True
for line in list_contents:
if append_newline == True:
file.write("\n")
else:
append_newline = True
file.write(line)
Output
Welcome to devenum.com
How are you
Thanks
Hi!
for
Visting US
Summary
In this post we have learned 5 ways to append to existing text file Python with the help of examples.