Windows上的Python 2.7。試圖使用mmap模塊,但使用打開文件處理程序而不是with open(filename, "r+b") as f:
我只是打開它並得到一個WindowsError [Error 5]
。使用mmap打開文件失敗
它重現,要麼以管理員身份運行,要麼不以管理員身份運行。 使用codecs.open()
不能解決問題。
# -*- coding: utf8 -*-
from __future__ import print_function
import mmap
class QSHFile(object):
def __init__(self, filename):
self.filename = filename
self.file = open(filename, 'r')
self.fileno = self.file.fileno()
self.mm = mmap.mmap(self.fileno, 0)
print(self.mm[:5]) # prints first 5
if __name__ == '__main__':
qsh = QSHFile('example.qsh')
位或研究後,我到了:
#! /usr/bin/python
# -*- coding: utf8 -*-
from __future__ import print_function
from mmap import ACCESS_READ, mmap
class QSHFile(object):
def __init__(self, filename):
self.filename = filename
self.file = open(filename, 'rb')
self.fileno = self.file.fileno()
self.mm = mmap(self.fileno, 0, access=ACCESS_READ)
print(self.mm[:5])
if __name__ == '__main__':
qsh = QSHFile('example.qsh')
而現在它的正常工作。我現在在做對嗎?
爲什麼在文本模式下打開文件? – user2357112
以管理員身份打開cmd,然後從那裏調用您的python腳本 – Aaron
或提供絕對文件名! – Meitham