У меня возникли проблемы с получением файла на карте памяти, и я надеялся решить эту проблему. Я подробно описал проблему и показал свой код ниже.запрос файла mmap для пустого файла в Python
Что я импортирование:
import os
import mmap
Теперь для кода:
file = r'otest' # our file name
if os.path.isfile(file): # test to see if the file exists
os.remove(file) # if it does, delete it
f = open(file, 'wb') # Creates our empty file to write to
print(os.getcwd())
Вот где я сталкиваюсь с проблемой с моим кодом (я включил оба, и есть один закомментирована каждый раз, когда я запустить программу):
mfile = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_WRITE)
#mfile = mmap.mmap(f.fileno(), 10**7, access=mmap.ACCESS_WRITE)
Я сталкиваюсь ошибку либо из MFile линий. Для строки mmap.mmap
с аргументом 0
Я получаю эту ошибку: ValueError: cannot mmap an empty file
. Если я вместо этого использовать 10**7
аргумент, я получаю эту ошибку вместо того, чтобы: PermissionError: [WinError 5] Access is denied
И закончить его:
"""
Other stuff goes here
"""
f.close() # close out the file
«Другая материал здесь» это просто место держатель для где я собираюсь поставить больше кода, чтобы делать что-то.
Просто добавить, я нашел this thread, который я думал, что может помочь, но оба ftruncate
и os.truncate
функции не похоже, чтобы помочь проблему под рукой.
'mmap()' в файле не изменится размер файла. Если вы хотите 'mmap()' 1e7 байт файла, вам нужно сделать что-то заранее, чтобы убедиться, что файл на самом деле по крайней мере такой большой ... – twalberg
Я это считал, но понял, что должен быть способ заполнения данных в заранее выделенный объем пространства, отведенного для mmap(), а не начинающийся с файла предполагаемого размера. – Jeremie