我在获取文件到内存映射时遇到了一些问题,并希望解决此问题。我详细说明了问题并在下面显示了我的代码。
我正在导入的内容:
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
函数似乎都没有帮助解决当前的问题。