为什么在 Windows 网络驱动器上以读取方式打开文件会阻止其他人以读取+写入方式打开文件?

为什么在 Windows 网络驱动器上以读取方式打开文件会阻止其他人以读取+写入方式打开文件?

我们有一个用于数据输入的 Excel 文件(位于网络驱动器上)。我们还在服务器上有一个从文件中提取数据的 Python 脚本。

根据计算机管理,文件在服务器上以只读方式打开。但是,当脚本打开文件时,我们的用户无法保存文件。

为什么当其他用户处于只读状态时,用户不能进行读写操作?有没有办法允许在用户以只读方式打开文件时对其进行更改?

答案1

在 Windows 中,当打开文件时,程序会指定其访问方法,例如只读。它还会指定其共享模式,即允许其他人对文件执行的操作。

显然,您的脚本不允许在打开文件时对其进行修改。这很合乎逻辑,因为如果读取的文件内容与内存缓存中已有的内容不对应,则可能会发生不好的事情。

如果你准备冒着破坏只读会话的​​风险,其他用户可以使用以下程序 解锁者 解锁文件,风险自负。

答案2

程序访问文件的属性远不止读取和写入。

例如,第一个获得文件访问权限的应用程序可以指定它允许的“模式”。

这些是诸如“共享拒绝无”,“共享拒绝读取”,“共享拒绝写入”等。这些标志控制 SECOND+ 实体对文件的访问。

您的 python 脚本使用错误的标志打开文件(例如共享拒绝写入)。

修复你的脚本,这个问题很可能会消失..但话又说回来..你的问题可能会变得更糟,因为根据情况的不同,将两个不同的东西写入同一个文件通常会带来坏运气。

我建议尝试一下并看看(当然在备份文件之后)。

相关内容