读自;“锁定”;使用python在windows中创建文件

读自;“锁定”;使用python在windows中创建文件,python,windows,file-permissions,Python,Windows,File Permissions,我编写了一个python脚本来处理另一个程序的输出文件,并在其上运行各种统计数据。现在,当我尝试从python脚本访问该文件时: with open('C:\\my_file_path', 'rb') as outfile: print(outfile) 我收到一条错误消息: PermissionError:[Errno 13]权限被拒绝:“C:\my\u file\u path” 当使用其他程序(特别是HxD,十六进制编辑器)时,Windows会弹出一个更详细的错误弹出窗口,说明:

我编写了一个python脚本来处理另一个程序的输出文件,并在其上运行各种统计数据。现在,当我尝试从python脚本访问该文件时:

with open('C:\\my_file_path', 'rb') as outfile:
     print(outfile)
我收到一条错误消息:

PermissionError:[Errno 13]权限被拒绝:“C:\my\u file\u path”

当使用其他程序(特别是HxD,十六进制编辑器)时,Windows会弹出一个更详细的错误弹出窗口,说明:

进程无法访问该文件,因为该文件正由用户使用 另一个过程

以管理员身份运行该程序,或者在WSL Ubuntu中使用sudo运行该程序,都没有任何区别


尽管存在这些锁定条件,是否有任何方法读取写入此文件的数据?我不能搞乱第一个程序,因为它是一个低级设备驱动程序,我没有源代码。它从本质上记录来自硬件传感器的数据,并将其写入文件几个小时,因此能够用python同时解析该文件(而不是等待数小时的记录结束)会更好。

从技术上讲,这不是文件锁定错误。锁定应用于文件的某个范围。锁定允许进程对文件的多个范围的读/执行和写/附加访问进行细粒度控制。由于锁定而导致读取或写入请求失败是一种锁定冲突(33)。打开现有文件时,其他进程设置的锁的存在不会影响对整个文件授予的访问权限。在整个文件的粗略级别上,Windows有一种称为访问共享模式的不同机制。每次通过
CreateFileW
打开文件时(即创建一个引用磁盘上文件的内核文件对象),调用者必须指定所需的访问权限,如果需要任何数据访问,则是否应共享对整个文件的读/执行、写/附加和删除访问权限。如果退出打开与所需的访问和共享模式不一致,则打开将失败,因为共享冲突(32)。请注意,没有等同于删除共享的锁定。删除访问权限仅适用于整个文件,而不适用于文件的范围。通常,打开文件进行读取或写入的Windows程序不共享删除/重命名访问权限。这就是为什么删除或重命名打开的文件通常是不可能的。如果所有打开的文件都具有共享删除访问权限,则即使文件的一个或多个范围被锁定,也可以删除或重命名该文件。但是,除了Windows 10中新的POSIX支持外,在关闭所有对文件的引用之前,系统实际上不会取消链接/删除该文件。从技术上讲,这不是文件锁定错误。锁定应用于文件的某个范围。锁定允许进程对文件的多个范围的读/执行和写/附加访问进行细粒度控制。由于锁定而导致读取或写入请求失败是一种锁定冲突(33)。打开现有文件时,其他进程设置的锁的存在不会影响对整个文件授予的访问权限。在整个文件的粗略级别上,Windows有一种称为访问共享模式的不同机制。每次通过
CreateFileW
打开文件时(即创建一个引用磁盘上文件的内核文件对象),调用者必须指定所需的访问权限,如果需要任何数据访问,则是否应共享对整个文件的读/执行、写/附加和删除访问权限。如果退出打开与所需的访问和共享模式不一致,则打开将失败,因为共享冲突(32)。请注意,没有等同于删除共享的锁定。删除访问权限仅适用于整个文件,而不适用于文件的范围。通常,打开文件进行读取或写入的Windows程序不共享删除/重命名访问权限。这就是为什么删除或重命名打开的文件通常是不可能的。如果所有打开的文件都具有共享删除访问权限,则即使文件的一个或多个范围被锁定,也可以删除或重命名该文件。但是,除了Windows 10中新的POSIX支持外,系统在关闭对该文件的所有引用之前不会实际取消链接/删除该文件。