Ответ 1
Режим ab+
подразумевается r
, а 'append и (' w'rite '+' 'r'ead) являются избыточными. Поскольку CPython (т.е. Обычный python) file
основан на типе C stdio file
, вот соответствующие строки из справочной страницы fopen (3):
-
w + Открыт для чтения и записи. Файл создается, если он не существует, в противном случае он усекается. Поток расположен на начало файла.
-
a + Открыть для чтения и добавления (запись в конце файла). Файл создается, если он не существовать. Начальная позиция файла для чтения находится в начале файл, но вывод всегда прилагается к концу файла.
С помощью "b", чтобы сделать DOS счастливым. Предположительно, вы хотите сделать что-то вроде этого:
>>> 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'