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

Режим файла для создания + чтения + добавление + двоичный файл

Мне нужно открыть файл для чтения и записи. Если файл не найден, он должен быть создан. Его также следует рассматривать как двоичный код для Windows. Можете ли вы сказать мне последовательность файлов, которую мне нужно использовать для этого?

Я попробовал 'r + ab', но это не создает файлы, если они не найдены.

Спасибо

4b9b3361

Ответ 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'

Ответ 2

open("filename", "a+b")

должен работать. Он открывает двоичный файл в режиме добавления/обновления.