Какая разница между "r +" и "a +" при открытии файла в python?
Возможный дубликат:
открытая встроенная функция python: разница между режимами a, a +, w, w + и r +?
Я попробовал r+
и a+
открыть файл и прочитать и записать, но "r +" и "a +" все присоединяют str к концу файла.
Итак, какая разница между r+
и a+
?
Добавить
Я нашел причину:
Я прочитал объект файла и забыл искать (0), чтобы установить местоположение в начало
Ответы
Ответ 1
Python открывает файлы почти таким же образом как в C:
-
r+
Открыт для чтения и записи. Поток расположен в начале файла.
-
a+
Открыть для чтения и добавления (запись в конце файла). Файл создается, если он не существует. Начальная позиция файла для чтения находится в начале файла, но вывод добавляется в конец файла (но в некоторых системах Unix, независимо от того, текущая позиция поиска).
Ответ 2
Единственное отличие для r+
, если файлов не существует, оно не будет создано и открытие будет неудачным. Но в случае a+
файл будет создан, если он не существует.
Ответ 3
Если вы использовали их в C
, то они почти такие же, как в C.
Из manpage функции fopen()
: -
-
r+
: - Открыт для чтения и записи. Поток расположен в начало файла.
-
a+
: - Открыть для чтения и записи. Файл создается, если он не существовать. Поток расположен в конце файла. Последовавшие quent пишет в файл, всегда будет заканчиваться на текущем конец файла, независимо от любого промежуточного fseek (3) или подобного.