Есть ли способ открыть файл для чтения и записи? Я думал, что "r +" для этого. Поскольку я работаю над двоичными файлами, я пробовал режим "r + b", но я получаю сообщение об ошибке, что файл не открыт для чтения.
Открыть файл для чтения и записи?
Ответ 1
Здесь вы читаете файл, а затем записываете его (перезаписываете любые существующие данные), не закрывая и не открывая:
with open(filename, "r+") as f:
data = f.read()
f.seek(0)
f.write(output)
f.truncate()
Ответ 2
r+
- это канонический режим для чтения и записи одновременно. Это не отличается от использования системного вызова fopen()
, поскольку file()
/open()
- это всего лишь крошечная оболочка вокруг этого вызова операционной системы.
Ответ 3
Я пробовал что-то вроде этого и работает как ожидалось:
f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()
Где:
f.read(size) - Чтобы прочитать содержимое файлов, вызовите f.read(size), который читает некоторое количество данных и возвращает его как строку.
и
f.write(string) записывает содержимое строки в файл, возвращая Отсутствуют.
Также, если вы откроете учебник Python о чтении и записи файлов, вы обнаружите, что:
'r +' открывает файл для чтения и записи.
В Windows, 'b', добавленный в режим, открывает файл в двоичном режиме, поэтому существуют также такие режимы, как "rb", "wb" и "r + b".