gpt4 book ai didi

python filelock模块删除文件

转载 作者:太空宇宙 更新时间:2023-11-04 00:54:26 24 4
gpt4 key购买 nike

我已经下载了 filelock模块以便使用我的 python 程序锁定文件。这是我的代码:

import filelock
lock = filelock.FileLock(path)
lock.acquire()
#do something...
lock.release()

出于某种原因我不明白当我释放锁时文件被删除了。有谁知道如何处理这个?释放锁后如何保持文件可用?如果相关,我的文件保存在单独的硬盘上。谢谢。

我正在使用 windows 10 专业版

最佳答案

我不确定为什么,但文档表明它不应该做你正在经历的事情。但是如果你是在windows上使用这个,你可以看看release lock的实现,你会发现如果是最终锁或者强行释放锁,确实会删除文件。请查看“Windows locking mechanism”部分。

Windows 锁定的底层实现使用以下发布代码:

def _release(self):
msvcrt.locking(self._lock_file_fd, msvcrt.LK_UNLCK, 1)
os.close(self._lock_file_fd)
self._lock_file_fd = None

try:
os.remove(self._lock_file)
# Probably another instance of the application
# that acquired the file lock.
except OSError:
pass
return None

如您所见,os.remove 将删除该文件。尽管这无济于事,但希望能解释为什么会这样。可能是错误或有人忘记删除的陈旧代码。

关于python filelock模块删除文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35699478/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com