Python Tutorial (27) - File Methods

Time: Column:Python views:248

open() Method

The Python open() method is used to open a file and return a file object.

During file processing, you will need to use this function, and if the file cannot be opened, it will raise an OSError.

Note: When using the open() method, ensure that you close the file object by calling the close() method.

The common usage of the open() function takes two parameters: the file name (file) and the mode (mode).

open(file, mode='r')

Complete Syntax:

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

Parameter Explanation:

  • file: Required. The path of the file (either relative or absolute).

  • mode: Optional. The mode in which the file is opened.

  • buffering: Optional. Sets buffering policy.

  • encoding: Optional. Specifies the encoding. Typically, this is set to utf8.

  • errors: Optional. Sets the error handling strategy.

  • newline: Optional. Controls how universal newlines mode works.

  • closefd: Optional. Specifies whether to close the file descriptor after file closing.

  • opener: Optional. A custom opener that must return an open file descriptor.

File Opening Modes:

ModeDescription
tText mode (default).
xWrite mode. Creates a new file, and raises an error if it already exists.
bBinary mode.
+Opens a file for updating (reading and writing).
UUniversal newline mode (no longer supported in Python 3).
rOpens a file for reading (default). The pointer is placed at the beginning.
rbOpens a file for reading in binary format. The pointer is placed at the beginning. Typically used for non-text files like images.
r+Opens a file for reading and writing. The pointer is placed at the beginning.
rb+Opens a file for reading and writing in binary format. The pointer is placed at the beginning. Typically used for non-text files like images.
wOpens a file for writing. If the file already exists, it truncates the file to zero length. If the file doesn’t exist, it creates a new file.
wbOpens a file for writing in binary format. If the file already exists, it truncates it. If the file doesn’t exist, it creates a new file. Typically used for non-text files like images.
w+Opens a file for reading and writing. If the file already exists, it truncates it. If the file doesn’t exist, it creates a new file.
wb+Opens a file for reading and writing in binary format. If the file already exists, it truncates it. If the file doesn’t exist, it creates a new file. Typically used for non-text files like images.
aOpens a file for appending. The pointer is placed at the end of the file. If the file doesn’t exist, it creates a new file.
abOpens a file for appending in binary format. The pointer is placed at the end of the file. If the file doesn’t exist, it creates a new file.
a+Opens a file for reading and appending. The pointer is placed at the end of the file. If the file doesn’t exist, it creates a new file.
ab+Opens a file for reading and appending in binary format. The pointer is placed at the end of the file. If the file doesn’t exist, it creates a new file.

The default mode is text mode (t). If you need to open a file in binary mode, add the b flag.


File Object

A file object is created using the open function. The table below lists common methods used with file objects:

No.Method & Description
1file.close(): Closes the file. After closing, the file cannot be read or written.
2file.flush(): Flushes the internal buffer, writing the buffer data to the file immediately.
3file.fileno(): Returns an integer file descriptor (FD), which can be used with low-level operations like os.read().
4file.isatty(): Returns True if the file is connected to a terminal device, otherwise returns False.
5file.next(): In Python 3, the file object does not support next() for iteration. Instead, use for loops or __next__().
6file.read([size]): Reads and returns the specified number of bytes from the file. If size is omitted or negative, it reads the entire file.
7file.readline([size]): Reads a single line from the file, including the newline character (\n).
8file.readlines([sizeint]): Reads all lines from the file and returns them as a list. If sizeint > 0, it reads lines approximately totaling sizeint bytes.
9file.seek(offset[, whence]): Moves the file pointer to a specified position.
10file.tell(): Returns the current position of the file pointer.
11file.truncate([size]): Truncates the file to size characters. If size is omitted, the file is truncated at the current pointer position.
12file.write(str): Writes the string to the file and returns the number of characters written.
13file.writelines(sequence): Writes a list of strings to the file. If newline characters are needed, they must be added to each string manually.