The syntax of
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
- file - path-like object (representing a file system path)
- mode (optional) - mode while opening a file. If not provided, it defaults to
'r'(open for reading in text mode). Available file modes are:
Open a file for reading. (default)
Open a file for writing. Creates a new file if it does not exist or truncates the file if it exists.
Open a file for exclusive creation. If the file already exists, the operation fails.
Open for appending at the end of the file without truncating it. Creates a new file if it does not exist.
Open in text mode. (default)
Open in binary mode.
Open a file for updating (reading and writing)
- buffering (optional) - used for setting buffering policy
- encoding (optional) - the encoding format
- errors (optional) - string specifying how to handle encoding/decoding errors
- newline (optional) - how newlines mode works (available values:
- closefd (optional) - must be
True(default); if given otherwise, an exception will be raised
- opener (optional) - a custom opener; must return an open file descriptor
Return Value from open()
open() function returns a file object which can used to read, write and modify the file.
If the file is not found, it raises the
Example 1: How to open a file in Python?
# opens test.text file of the current directory f = open("test.txt") # specifying the full path f = open("C:/Python33/README.txt")
Since the mode is omitted, the file is opened in
'r' mode; opens for reading.
Example 2: Providing mode to open()
# opens the file in reading mode f = open("path_to_file", mode='r') # opens the file in writing mode f = open("path_to_file", mode = 'w') # opens for writing to the end f = open("path_to_file", mode = 'a')
Python's default encoding is ASCII. You can easily change it by passing the
f = open("path_to_file", mode = 'r', encoding='utf-8')
Recommended Reading: Python File Input/Output