File mode for creating+reading+appending+binary

The mode is ab+ the r is implied and ‘a’ppend and (‘w’rite ‘+’ ‘r’ead) are redundant. Since the CPython (i.e. regular python) file is based on the C stdio FILE type, here are the relevant lines from the fopen(3) man page:

  • w+ Open for reading and writing.
    The file is created if it does not
    exist, otherwise it is truncated.
    The stream is positioned at the
    beginning of the file.

  • a+ Open for reading and appending (writing at end of file).
    The file is created if it does not
    exist. The initial file position
    for reading is at the beginning of
    the file, but output is always
    appended to the end of the file.

With the “b” tacked on to make DOS happy. Presumably you want to do something like this:

>>> f = open('junk', 'ab+')
>>> f
<open file 'junk', mode 'ab+' at 0xb77e6288>
>>> f.write('hello\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.write('there\n')
>>> f.seek(0, os.SEEK_SET)
>>> f.readline()
'hello\n'
>>> f.readline()
'there\n'

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)