python解除文件占用_python 在删除文件的时候检测该文件是否被其他线程或者进程占用?...

这篇博客探讨了Linux系统下,进程如何在文件被删除后仍能继续使用,揭示了Linux通过inode来标识文件的特性。这种机制使得程序在不退出的情况下可以实现无缝升级。而在Python中,任何文件操作失败都会抛出异常,强调了先执行后捕获异常的处理方式,提醒开发者避免不必要的预判。了解这些差异对于从Windows转向Linux开发的程序员至关重要。
摘要由CSDN通过智能技术生成

永远不要忘记:跨平台特性是Python的血液和命脉。

在Linux下进程正在使用的文件,是不妨碍其他进程去移动/删除/更名的。因为在Linux下由inode确定文件,inode和文件路径虽然存在对应关系,但本质上是分离的。删除了某进程正在使用的文件,则在该进程没有关闭之前,哪怕文件在目录结构中消失了,也仍然能被访问到,直到没有任何进程打开了这个文件(inode节点的使用者数量降为0)后才会真正删除。

这个机制是很多Linux程序可以实现不退出升级的理由:旧程序和依赖库,在旧程序关闭前总是能访问到,所以无需关闭。而下次启动时,程序和库正好就升级成了新的。——你是否习惯了Windows下升级总要“退出正在运行的所有程序”,而对这一点感到很不可思议呢?

删除操作能否执行,何时执行,说到底这依赖操作系统的实现,不需要Python在“前端”去做无谓的判断。

被Windows毒害的程序员们,醒醒吧,世界上有很多优秀的实现,你可以不用,但不得不知,更不能画蛇添足的去做出一些“对抗”它的举动。

任何不能进行文件操作的状况(例如:权限不许可、文件锁、磁盘满、IO错误等),在Python中都表示为一个异常。请尊重Python的实现方式,先做事,再捕获异常,最后处理。不要做任何无谓的提前判断——因为你有限的预防,绝对覆盖不了所有可能出现的问题!!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值