我正在尝试fsync
一个目录,以确保重命名操作发生。我遇到的问题是Python总是返回一个权限错误,即使我对我尝试过的各种文件夹拥有完全权限。在
directory = r'C:\Random\Path'
os.access(directory, os.W_OK)
os.access(directory, os.X_OK)
os.access(directory, os.R_OK)
True, True, True
fd = open(directory)
os.fsync(fd)
IOError: [Errno 13] Permission denied: 'C:\\Random\\Path'
我是做错了什么,还是有更深层次的事情发生?在
内置的open()与操作系统打开(). 操作系统打开()返回文件描述符(整数),但open()不返回。操作系统打开()可以打开目录(至少在Linux上可以,我没有尝试过Windows),但是open()不能。在
未执行
fsync()
调用。错误来自open()
。为什么?因为您无法在Windows上打开目录。*{a1}是这种行为^:
(重点是我的)。
EACCES
权限被拒绝;它被用作compatibility reasons的通用“你不能这样做”错误。在*具体来说,您不能使用POSIX子系统打开一个目录;在Windows上可以用^{} 打开一个目录,但是这会给您一个句柄,根据this list不能传递给^{} ,所以这仍然是不可能的。在
相关问题 更多 >
编程相关推荐