Я пытаюсь отобразить файл в режиме ACCESS_COPY. Затем я пишу один символ и флеш, но flush() возвращает сбой, и изменения не записываются обратно в файл. Любые идеи почему? Спасибо.python mmap flush() не работает с ACCESS_COPY
Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>>
import os, mmap
f = open('etc.test', 'r+b')
mapped = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_COPY)
print mapped[0]
mapped[0] = 'R'
print mapped.flush() <--- returns 0 (error on Windows)
mapped.close()
f.close()
Есть ли какая-либо конкретная причина вы используете mmap.ACCESS_COPY? mmap.ACCESS_COPY задокументировано, чтобы не было возможности записать изменения обратно в файл. – nos
Да, я хочу внести изменения в память, а затем записать обратно в файл. «Назначение карты памяти ACCESS_COPY влияет на память, но не обновляет основной файл». "flush ([offset, size]) Сбрасывает изменения, внесенные в копию файла в памяти на диске." – notkov