File Modes in Python
File mode determines how a file is opened in Python: For reading For writing For appending For binary access And more…
Choosing the correct mode is critical for safe and correct file handling.
File Modes Overview
| Mode | Description |
|---|---|
'r' | Read-only (default). File must exist. |
'w' | Write-only. Creates new file or overwrites existing. |
'a' | Append-only. Creates new file or appends to existing. |
'r+' | Read + write. File must exist. |
'w+' | Write + read. Overwrites existing or creates new file. |
'a+' | Append + read. Creates new or appends. |
'b' | Binary mode (e.g., 'rb', 'wb') |
'x' | Exclusive creation — fails if file exists. |
Example 1: 'r' — Read Mode
file_mode_r.py
with open("example.txt", "r") as file:
print(file.read())Notes:
- Opens file for reading
- File must exist, otherwise error:
FileNotFoundError
Example 2: 'w' — Write Mode
file_mode_w.py
with open("newfile.txt", "w") as file:
file.write("This will create a new file or overwrite existing.")Notes:
- Creates
newfile.txtif not present - Overwrites content if file exists
Example 3: 'a' — Append Mode
file_mode_a.py
with open("newfile.txt", "a") as file:
file.write("\nAppending another line.")Notes:
- Adds content to end of file
- Does not overwrite
Example 4: 'r+' — Read and Write (existing file)
file_mode_rplus.py
with open("example.txt", "r+") as file:
content = file.read()
print("Before:", content)
file.seek(0)
file.write("Updated first line.\n")Notes:
- File must exist
- Allows both reading and writing
Example 5: 'w+' — Write and Read (overwrite)
file_mode_wplus.py
with open("newfile2.txt", "w+") as file:
file.write("New content here.\n")
file.seek(0)
print("After write:", file.read())Notes:
- Overwrites or creates file
- Can read and write
Example 6: 'a+' — Append and Read
file_mode_aplus.py
with open("newfile2.txt", "a+") as file:
file.write("Appending again!\n")
file.seek(0)
print("File content:\n", file.read())Notes:
- Appends content
- Can also read
Example 7: 'x' — Exclusive Creation
file_mode_x.py
with open("unique.txt", "x") as file:
file.write("File created uniquely.")Notes:
- Fails if file already exists:
FileExistsError
Binary Modes: 'rb', 'wb'
Used for non-text files: Images Audio/video Executables
Example 8: Reading Binary File
file_mode_rb.py
with open("image.png", "rb") as file:
data = file.read(10)
print(data)Notes:
'rb'— read binary- Returns bytes, not strings
Example 9: Writing Binary File
file_mode_wb.py
with open("copy_image.png", "wb") as file:
with open("image.png", "rb") as original:
file.write(original.read())Notes:
'wb'— write binary- Can copy image/audio files
Summary
File mode controls how files are opened:
- Read (
'r') - Write (
'w') - Append (
'a') - Combined read/write (
'r+','w+','a+') - Exclusive create (
'x') - Binary (
'rb','wb')
Always choose the mode appropriate for your use case
Using with open() ensures safe file handling
Next, we will learn about Using with Statement — how it makes file handling safer and more readable.