Last Updated : 12 Jul, 2025
While reading or writing to a file, access mode governs the type of operations possible in the opened file. It refers to how the file will be used once it's opened. These modes also define the location of the File Handle in the file. The definition of these access modes is as follows:
These modes are ideal when you want to preserve existing content while adding more. Let's look at some examples:
Example 1: Append vs write mode. Python
# Write mode: overwrites the file
file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London"]
file1.writelines(L)
file1.close()
# Append mode: adds to the end of the file
file1 = open("myfile.txt", "a")
file1.write("Today \n")
file1.close()
# Reading file content
file1 = open("myfile.txt", "r")
print("Output after appending:")
print(file1.read())
file1.close()
# Write mode again: overwrites previous content
file1 = open("myfile.txt", "w")
file1.write("Tomorrow \n")
file1.close()
file1 = open("myfile.txt", "r")
print("Output after overwriting:")
print(file1.read())
file1.close()
Output:
Output of Readlines after appending
This is Delhi
This is Paris
This is LondonTodayOutput of Readlines after writing
Tomorrow
Explanation:
In the above example of file handling, it can be seen that the data is not appended from the new line. This can be done by writing the newline '\n' character to the file.
Python
# Initial file content
file1 = open("myfile.txt", "w")
L = ["This is Delhi \n", "This is Paris \n", "This is London"]
file1.writelines(L)
file1.close()
# Appending with and without newline
file1 = open("myfile.txt", "a")
file1.write("\n")
file1.write("Today")
file1.write("Tomorrow")
file1.close()
# Read updated content
file1 = open("myfile.txt", "r")
print("Output after appending:")
print(file1.read())
file1.close()
Output:
Output of Readlines after appending
This is Delhi
This is Paris
This is London
TodayTomorrow
Explanation:
Example 3: Using With statement in PythonNote: ‘\n’ is treated as a special character of two bytes.
with statement is used in exception handling to make the code cleaner and much more readable. It simplifies the management of common resources like file streams. Unlike the above implementations, there is no need to call file.close() when using with statement.
Python
L = ["This is Delhi \n", "This is Paris \n", "This is London \n"]
# Writing to file
with open("myfile.txt", "w") as file1:
file1.write("Hello \n")
file1.writelines(L)
# Appending data
with open("myfile.txt", "a") as file1:
file1.write("Today")
# Reading file
with open("myfile.txt", "r") as file1:
print(file1.read())
Output:
Hello
This is Delhi
This is Paris
This is London
Today
Explanation:
Example 4: Appending File Content Using shutilNote: To know more about with statement click here.
This approach uses the shutil.copyfileobj() method to append the contents of another file (source_file) to 'file.txt'. This can be useful if you want to append the contents of one file to another without having to read the contents into memory first.
Python
import shutil
# Open destination file in append-binary mode
with open("file.txt", "ab") as dest:
# Open source file in read-binary mode
with open("source_file.txt", "rb") as src:
shutil.copyfileobj(src, dest)
Explanation:
Related article: File Handling in Python
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4