在python中检测并删除锁定的文件

2024-02-22

我想在 Unix 上使用 python 检测文件是否被锁定。删除该文件是可以的,假设它有助于检测该文件是否被锁定。

该文件最初可能是由另一个进程独占打开的。文档似乎表明,如果文件被锁定, os.unlink 不一定会返回错误。

Ideas?


检查文件是否被锁定的最佳方法是尝试锁定它。这fcntl模块 http://docs.python.org/library/fcntl.html将在 Python 中执行此操作,例如

fcntl.lockf(fileobj.fileno(), fcntl.LOCK_EX | fcntl.LOCK_NB)

如果文件已被锁定,这将引发 IOError;如果没有,您可以致电

fcntl.lockf(fileobj.fileno(), fcntl.LOCK_UN)

才能再次解锁。

请注意,与 Windows 不同,在 Unix 中打开文件进行写入不会自动为您提供独占锁。另请注意,fcntl 模块在 Windows 上不可用;你需要使用os.open http://docs.python.org/library/os.html#os.open,这是一个不太友好但更便携的界面(并且可能需要再次重新打开文件)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在python中检测并删除锁定的文件 的相关文章

  • 如何传递架构以从现有数据帧创建新数据帧?

    要将 schema 传递到 json 文件 我们这样做 from pyspark sql types import StructField StringType StructType IntegerType data schema Stru
  • Pandas set_levels,如何避免标签排序?

    我使用时遇到问题set levels多索引 from io import StringIO txt Name Height Age Metres A 1 25 B 95 1 df pd read csv StringIO txt heade
  • Python 类型提示 Dict 语法错误 可变默认值是不允许的。使用“默认工厂”

    我不知道为什么解释器会抱怨这个类型的字典 对于这两个实例 我得到一个 不允许可变默认值 使用默认工厂 语法错误 我使用的是 python 3 7 3 from dataclasses import dataclass from typing
  • Python - 比较同一字典中的值

    我有一本字典 d Trump MAGA FollowTheMoney Clinton dems Clinton Stein FollowTheMoney Atlanta 我想删除字符串列表中的重复字符串 该字符串是键的值 对于这个例子 期望
  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • matplotlib 图中点的标签

    所以这是一个关于已发布的解决方案的问题 我试图在我拥有的 matplotlib 散点图中的点上放置一些数据标签 我试图在这里模仿解决方案 是否有与 MATLAB 的 datacursormode 等效的 matplotlib https s
  • 多输出堆叠回归器

    一次性问题 我正在尝试构建一个多输入堆叠回归器 添加到 sklearn 0 22 据我了解 我必须结合StackingRegressor and MultiOutputRegressor 经过多次尝试 这似乎是正确的顺序 import nu
  • 如何从Python中的函数返回多个值? [复制]

    这个问题在这里已经有答案了 如何从Python中的函数返回多个变量 您可以用逗号分隔要返回的值 def get name you code return first name last name 逗号表示它是一个元组 因此您可以用括号将值括
  • python multiprocessing 设置生成进程等待

    是否可以生成一些进程并将生成进程设置为等待生成的进程完成 下面是我用过的一个例子 import multiprocessing import time import sys def daemon p multiprocessing curr
  • Python 3d 绘图设置固定色阶

    我正在尝试绘制两个 3d 数组 第一个数组的 z 值在范围内 0 15 0 15 第二个来自 0 001 0 001 当我绘图时 色标自动遵循数据范围 如何设置自定义比例 我不想看到 0 001 的浅色 而应该看到 0 15 的浅色 如何修
  • 为什么 web2py 在启动时崩溃?

    我正在尝试让 web2py 在 Ubuntu 机器上运行 所有文档似乎都表明要在 nix 系统上运行它 您需要下载源代码并执行以下操作 蟒蛇 web2py py 我抓住了source http www web2py com examples
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • 尽管我已在 python ctypes 中设置了信号处理程序,但并未调用它

    我尝试过使用 sigaction 和 ctypes 设置信号处理程序 我知道它可以与python中的信号模块一起使用 但我想尝试学习 当我向该进程发送 SIGTERM 时 但它没有调用我设置的处理程序 只打印 终止 为什么它不调用处理程序
  • 找到一个数字所属的一组范围

    我有一个 200k 行的数字范围列表 例如开始位置 停止位置 该列表包括除了非重叠的重叠之外的所有类型的重叠 列表看起来像这样 3 5 10 30 15 25 5 15 25 35 我需要找到给定数字所属的范围 并对 100k 个数字重复该
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 如何将Python3设置为Mac上的默认Python版本?

    有没有办法将 Python 3 8 3 设置为 macOS Catalina 版本 10 15 2 上的默认 Python 版本 我已经完成的步骤 看看它安装在哪里 ls l usr local bin python 我得到的输出是这样的
  • NLTK:查找单词大小为 2k 的上下文

    我有一个语料库 我有一个词 对于语料库中该单词的每次出现 我想获取一个包含该单词之前的 k 个单词和该单词之后的 k 个单词的列表 我在算法上做得很好 见下文 但我想知道 NLTK 是否提供了一些我错过的功能来满足我的需求 def size
  • 如何在Python脚本中从youtube-dl中提取文件大小?

    我是 python 编程新手 我想在下载之前提取视频 音频大小 任何 YouTube 视频 gt gt gt from youtube dl import YoutubeDL gt gt gt url https www youtube c

随机推荐

  • 通过socket发送wav文件

    我正在尝试通过套接字发送 wav 文件 我收到错误 TypeError must be string or buffer not instance waveFile wave open WAVE OUTPUT FILENAME rb my
  • Umbraco 7 SEO 标签

    我想在 Umbraco 中创建 SEO 标签的网站 我想知道它是如何做到的 有没有最佳实践文件或建议 我不是 SEO 专家 但希望下面的代码片段可以帮助您入门 Metadata 在页面上我添加了一些属性 如果您按照文档类型 通过继承或通过组
  • 如何处理 Wicket 自定义模型中抛出的异常?

    我有一个带有自定义模型的组件 扩展 wicket 标准模型类 当 Wicket 调用时 我的模型从数据库 Web 服务加载数据getObject 此查找可能会因多种原因而失败 我想通过在带有该组件的网页上显示一条不错的消息来处理此错误 最好
  • 如何使用宏来收集变量名称?

    我想简化以下内容 class A int a int b int c std vector
  • 使用 React Hooks 出现“太多重新渲染”错误

    我在这里遇到了 React Hooks 的困扰 我在网上查找 但无法弄清楚如何使这些示例适应我的代码 我有以下组件会触发 太多重新渲染 错误 const EmailVerification gt const showMessage setS
  • symfony2:找不到AppKernel中包含的类

    我有这个app AppKernel
  • Mongo shell 无法连接到 Azure CosmosDB

    我无法在 Mac 下从 MongoDB Shell 连接到 Azure CosmosDB mongodb api mongo host XXX documents azure com port 10255 username XXX pass
  • 需要 Underscore.js 中 _.bindAll() 函数的解释

    我一直在学习一些backbone js并且我见过很多例子 bindAll 用来 我已经阅读了整个backbone js和underscore js文档页面 试图了解它的作用 但我仍然对它的作用非常模糊 这是下划线的解释 bindAll ob
  • docker swarm中容器之间的通信

    我想在 docker swarm 模式下通过 WebSocket 连接在主节点和工作节点之间进行通信 工作节点应该已到达主节点 连接失败 另外 我想通过 http 从我的主机连接到主节点 连接也失败 这是我的docker compose y
  • 一对多关系删除

    我有一对多的关系 class GameSystem Object dynamic var gameSystemName class games Object dynamic var gameSystemName gameSystemName
  • 有没有办法将“if case”语句编写为表达式?

    考虑这段代码 enum Type case Foo Int case Bar Int var isBar Bool if case Bar self return true else return false 真恶心 我想写这样的东西 en
  • 两个 beta 分布的乘积

    假设我有两个随机变量 X 1 1 Y 2 2 我想计算 Z XY 的分布 随机变量的乘积 With scipy 我可以通过以下方式获取单个 Beta 版的 pdf from scipy stats import beta rv beta a
  • “完成”按钮未触发 Xamarin Entry 上的“完成”事件

    我添加后iOS 上的 完成 按钮 https developer xamarin com recipes cross platform xamarin forms ios add done to keyboard 在 Xamarin For
  • 跨版本序列化和反序列化 .net 对象的最佳实践

    使用 NET XML 序列化程序将对象序列化到数据库 该对象可能会随着时间的推移而发生变化 因此数据库中同时存在多个版本 有关构建代码的最佳方法的任何建议 以便您仍然可以将此对象反序列化为最新版本 界面 地图 手动序列化等 序列化对象中有一
  • 如何在Linux中设置CLASSPATH让java找到jar文件?

    在Linux下我尝试运行一个jar文件 如下所示 java jar plantuml jar testdot 当有CLASSPATH设置为以下任意一项 文件位于 home user plantuml jar export CLASSPATH
  • LabelPropagation - 如何避免被零除?

    使用时标签传播 http scikit learn org stable modules generated sklearn semi supervised LabelPropagation html 我经常遇到这个警告 恕我直言 这应该是
  • 在 flutter 中使用 new 关键字[重复]

    这个问题在这里已经有答案了 最近开始关注flutter优达学城课程 https classroom udacity com courses ud905在尝试创建基本应用程序时 我遇到了一些我不清楚的事情 添加小部件时 我注意到同时执行这两项
  • Jquery:将ajax调用的值返回给调用者函数?

    我试图从函数返回 ajax 调用返回的值 但它只返回 未定义 如果 ajax 调用发出警报 响应 它将返回正确的值 这是代码 我做错了什么 insertCandidate live click function e var ids this
  • 复杂的SQL查询建议请

    我有三个表 其架构如下 Table Apps ID bigint USERID Bigint START TIME datetime 1 13 2013 05 03 04 42 55 2 13 2013 05 12 06 22 45 3 1
  • 在python中检测并删除锁定的文件

    我想在 Unix 上使用 python 检测文件是否被锁定 删除该文件是可以的 假设它有助于检测该文件是否被锁定 该文件最初可能是由另一个进程独占打开的 文档似乎表明 如果文件被锁定 os unlink 不一定会返回错误 Ideas 检查文