Подтвердить что ты не робот

Какая разница между "r +" и "a +" при открытии файла в python?

Возможный дубликат:
открытая встроенная функция python: разница между режимами a, a +, w, w + и r +?

Я попробовал r+ и a+ открыть файл и прочитать и записать, но "r +" и "a +" все присоединяют str к концу файла.

Итак, какая разница между r+ и a+?


Добавить

Я нашел причину:

Я прочитал объект файла и забыл искать (0), чтобы установить местоположение в начало

4b9b3361

Ответ 1

Python открывает файлы почти таким же образом как в C:

  • r+ Открыт для чтения и записи. Поток расположен в начале файла.

  • a+ Открыть для чтения и добавления (запись в конце файла). Файл создается, если он не существует. Начальная позиция файла для чтения находится в начале файла, но вывод добавляется в конец файла (но в некоторых системах Unix, независимо от того, текущая позиция поиска).

Ответ 2

Единственное отличие для r+, если файлов не существует, оно не будет создано и открытие будет неудачным. Но в случае a+ файл будет создан, если он не существует.

Ответ 3

Если вы использовали их в C, то они почти такие же, как в C.

Из manpage функции fopen(): -

  • r+: - Открыт для чтения и записи. Поток расположен в      начало файла.

  • a+: - Открыть для чтения и записи. Файл создается, если он не      существовать. Поток расположен в конце файла. Последовавшие      quent пишет в файл, всегда будет заканчиваться на текущем      конец файла, независимо от любого промежуточного fseek (3) или подобного.