Python open() Method

The open() method opens the file (if possible) and returns the corresponding file object.

open() Syntax:

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

Parameters:

  1. file: The path name of the file to be opened or an integer file descriptor of the file to be wrapped.
  2. mode: (Optional) An access mode while opening a file. Default mode is 'r' for reading. See all the access modes.
  3. buffering: (Optional) Used for setting buffering policy. Defaults to -1. Pass 0 if specified mode is binary 'b',
  4. encoding: (Optional) The encoding format to encode or decode the file.
  5. errors: (Optional) String specifying how to handle encoding/decoding errors.
  6. newline: (Optional) Conrols how newlines mode works. It can be None, '', '\n', '\r', and '\r\n'.
  7. Closefd: (Optional) If a filename is given, it must be True. If False, the file descriptor will be kept open when the file is close
  8. Opener: (Optional) A custom callable file opener.

Return type:

Returns a file object.

File Access Modes

The following table lists the file access modes parameter values.

Access Modes Description
r Opens a file for reading only.
rb Opens a file for reading only in binary format.
r+ Opens a file for both reading and writing.
rb+ Opens a file for both reading and writing in binary format.
w Opens a file for writing only.
wb Opens a file for writing only in binary format.
w+ Opens a file for both writing and reading.
wb+ Opens a file for both writing and reading in binary format.
a Opens a file for appending.
ab Opens a file for appending in binary format.
a+ Opens a file for both appending and reading.
ab+ Opens a file for both appending and reading in binary format.

The following example opens a file from the current directory for reading and writing to file. The current directory in Python shell is C:\python38.

Example: Open File
>>> f = open("MyFile.txt") # Open MyFile.txt from the current directory for reading
>>> f = open("MyFile.txt", 'w') # Open MyFile.txt from the current directory for writing
# perform file operations using f
>>> f.close()

The file operations can raise exceptions if something goes wrong. So, it is recommended to use try-except-finally to handle exceptions and closing a file object.

Example: Exception Handling during File Operations
try:
    f = open("MyFile.txt") # Open MyFile.txt from the current directory for reading
    # perform file operations using f
except:
     # handle exceptions
finally:
    f.close()  

The following example opens files for read, write or update operations.

Example: Open File in Different Modes
>>> f = open("C:\MyFile.txt") # open for reading
>>> f = open("C:\MyFile.txt",'w') # open for writing 
>>> f = open("C:\MyFile.txt", 'x') # open for exclusive creation
>>> f = open("C:\MyFile.txt", 'a') # open for writing, appending to the end of file
>>> f = open("C:\MyApp.exe", 'b') # open in binary mode for read
>>> f = open("C:\myimage.jpg", 'rb') # open file in binary mode for read and write
>>> f = open("C:\MyFile.txt", 't') # open in text mode for read
>>> f = open("C:\MyFile.txt", mode='r', encoding='utf-8') # open for reading with utf-8 encoding
>>> f = open("C:\MyFile.txt", '+') # open for reading or writing
>>> print(type(f)
<class '_io.TextIOWrapper'>
>>> f.close() # closing file after file operations

Visit working with files in Python for more information.

Want to check how much you know Python?