Python 2.7 python file.truncate Errno 13权限被拒绝

Python 2.7 python file.truncate Errno 13权限被拒绝,python-2.7,Python 2.7,我编写了一个简单的python脚本,用于从“.h”或“.c”文件中删除较旧的修订历史记录 以下是代码: import mmap f = open("D:\MyFile.h", "r+"); m = mmap.mmap(f.fileno(), 0); index = m.find("/*+- Revision History"); if (index): print index; f.seek(index); f.truncate(); f.close(); 它给出了以下错误: T

我编写了一个简单的python脚本,用于从“.h”或“.c”文件中删除较旧的修订历史记录

以下是代码:

import mmap

f = open("D:\MyFile.h", "r+");
m = mmap.mmap(f.fileno(), 0);
index = m.find("/*+- Revision History");

if (index):
    print index;

f.seek(index);
f.truncate();
f.close();
它给出了以下错误:

Traceback (most recent call last):
File "C:/Python27/Omni", line 15, in <module>
    f.truncate();
IOError: [Errno 13] Permission denied
回溯(最近一次呼叫最后一次):
文件“C:/Python27/Omni”,第15行,在
f、 截断();
IOError:[Errno 13]权限被拒绝

请更改模式以如下方式打开文件

f = open("D:/MyFile.h", "r+");
f.truncate()
f.close()
由于您没有对该文件的写入权限,因此该文件出现了错误。希望这能解决问题。 希望您使用的是windows系统。然后按照上述步骤操作。我的python版本是2.6。
由于要执行truncate以删除文件中的所有数据,它需要写入权限,因此我使用了
r+

,我在ubuntu上成功运行了相同的程序,并且运行得非常好。我猜这与windows权限有关。

已经尝试过了,它说:(python版本=2.7.6)回溯(最近一次调用):文件“C:\Python27\Omni.py”,第3行,在f=open(“D:\MyFile.h”,“rw+”)中;ValueError:Invalid mode('rw+')我已修改了以前的答案,请检查。“ValueError:无法映射空文件”:当打开带有“w”或“w+”的文件时,具有相同名称的现有文件将被擦除。(来自Python文档)。是的,你是对的。无论如何,请使用正斜杠(/)。我得到了预期的结果。