尝试fsync目录时出错

2024-09-27 07:35:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试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'

我是做错了什么,还是有更深层次的事情发生?在


Tags: path目录文件夹true权限accessos错误
2条回答

内置的open()与操作系统打开(). 操作系统打开()返回文件描述符(整数),但open()不返回。操作系统打开()可以打开目录(至少在Linux上可以,我没有尝试过Windows),但是open()不能。在

未执行fsync()调用。错误来自open()。为什么?因为您无法在Windows上打开目录。*

{a1}是这种行为^:

EACCES

Tried to open a read-only file for writing, file's sharing mode does not allow the specified operations, or the given path is a directory.

(重点是我的)。EACCES权限被拒绝;它被用作compatibility reasons的通用“你不能这样做”错误。在


*具体来说,您不能使用POSIX子系统打开一个目录;在Windows上可以用^{}打开一个目录,但是这会给您一个句柄,根据this list不能传递给^{},所以这仍然是不可能的。在

相关问题 更多 >

    热门问题