# 6.9 File handles

File handles provide a means of reading data directly from text files, or of writing data or logging information to files. Files are opened using the `open()` function:

open([,])
The open([,]) function opens the file with string access mode , and returns a file handle object.

The most commonly used access modes are `"r"`, to open a file read-only, `"w"`, to open a file for writing, erasing any pre-existing file of the same filename, and `"a"`, to append data to the end of a file.

Alternatively, if what is wanted is a temporary scratch space, the `os.tmpfile()` function should be used:

os.tmpfile()
The os.tmpfile() function returns a file handle for a temporary file. The resulting file handle is open for both reading and writing.

The following methods are defined for file handles:

close()
The close() method closes a file handle.

dump()
The dump() method stores a typeable ASCII representation of the object to a file. Note that this method has no checking for recursive hierarchical data structures.

eof()
The eof() method returns a boolean flag to indicate whether the end of a file has been reached.

flush()
The flush() method flushes any buffered data which has not yet physically been written to a file.

getPos()
The getPos() method returns a file handle’s current position in a file.

isOpen()
The isOpen() method returns a boolean flag indicating whether a file is open.

read()
The read() method returns the contents of a file as a string.

readline()
The readline() method returns a single line of a file as a string.

readlines()
The readlines() method returns the lines of a file as a list of strings.

setPos()
The setPos() method sets a file handle’s current position in a file.

write()
The write() method writes the string to a file.

- 6.9.1 Storing data structures in text files