相关疑难解决方法(0)

如何使Windows文件锁定更像UNIX文件锁定?

UNIX文件锁定非常简单:操作系统假定您知道自己在做什么并让您按照自己的意愿行事:

例如,如果您尝试删除另一个进程已打开的文件,操作系统通常会让您这样做.原始进程仍然保留它的文件句柄,直到它终止 - 此时文件系统将悄悄地重新循环磁盘资源.不用大惊小怪,这就是我喜欢它的方式.

Windows上的不同之处:如果我尝试删除另一个进程正在使用的文件,则会出现操作系统错误.该文件是不可触及的,直到原始进程释放它对文件的锁定.在MS-DOS的单用户时代,当任何锁定进程可能在包含文件的同一台计算机上时,这是很棒的,但是在网络上这是一场噩梦:

考虑在写入Windows文件服务器上的共享文件时进程挂起时会发生什么.在删除文件之前,我们必须找到计算机并在最初打开文件的计算机上标识进程.只有这样我们才能杀死进程并删除我们不需要的文件.

真讨厌!

有没有办法让这更好?我想要的是Windows上的文件锁定在UNIX中表现得像文件锁定.我希望操作系统让我做我想做的事,因为我负责,我知道我在做什么......

......那可以吗?

unix windows

19
推荐指数
2
解决办法
8560
查看次数

我可以在python中为tempfile.NamedTemporaryFile设置umask吗?

在Python中(在2.7及以下版本中尝试过),它看起来像使用的文件tempfile.NamedTemporaryFile似乎不遵守umask指令:

import os, tempfile
os.umask(022)
f1 = open ("goodfile", "w")
f2 = tempfile.NamedTemporaryFile(dir='.')
f2.name

Out[33]: '/Users/foo/tmp4zK9Fe'

ls -l
-rw-------  1 foo  foo  0 May 10 13:29 /Users/foo/tmp4zK9Fe
-rw-r--r--  1 foo  foo  0 May 10 13:28 /Users/foo/goodfile
Run Code Online (Sandbox Code Playgroud)

知道为什么NamedTemporaryFile不拿起umask吗?在文件创建过程中有没有办法做到这一点?

我总是可以使用os.chmod()来解决这个问题,但是我希望在文件创建过程中做出正确的事情.

python permissions file

10
推荐指数
2
解决办法
4154
查看次数

使用open()打开文件时使用哪种共享模式

我在open()函数的参数中看不到任何内容,该参数允许指定如何共享文件。因此,我怀疑该文件将被尽可能地共享。特别:

  1. 当打开文件进行读取时,其共享模式将允许后续的打开操作打开文件进行读取,但不能进行写入。
  2. 当打开文件进行写入时,其共享模式将拒绝随后的打开操作以打开文件进行读取或写入。

在我看来,这是最合乎逻辑的实现。我的假设正确吗?

更新: Martijn Pieters指出答案取决于操作系统。因此,出于这个问题,我的目标操作系统是Windows。

python windows

5
推荐指数
1
解决办法
2999
查看次数

无法访问使用tempfile创建的临时文件

tempfile.NamedTemporaryFile()用来存储一些文本,直到程序结束。在Unix上可以正常使用,但是在Windows上无法读取或写入返回的文件:python提供Errno13。唯一的方法是使用设置delete=False和手动删除文件os.remove()。为什么?

python windows

4
推荐指数
1
解决办法
4594
查看次数

标签 统计

python ×3

windows ×3

file ×1

permissions ×1

unix ×1