请问你的是linux吗?如果是linux可以借助/proc来获取。

import os

class File(object):

def __init__(self, file_path):

if not os.path.exists(file_path):

raise OSError('{file_path} not exist'.format(file_path = file_path))

self.file_path = os.path.abspath(file_path)

def status(self):

open_fd_list = self.__get_all_fd()

open_count = len(open_fd_list)

is_opened = False

if open_count > 0:

is_opened = True

return {'is_opened': is_opened, 'open_count': open_count}

def __get_all_pid(self):

"""获取当前所有进程"""

return [ _i for _i in os.listdir('/proc') if _i.isdigit()]

def __get_all_fd(self):

"""获取所有已经打开该文件的fd路径"""

all_fd = []

for pid in self.__get_all_pid():

_fd_dir = '/proc/{pid}/fd'.format(pid = pid)

if os.access(_fd_dir, os.R_OK) == False:

continue

for fd in os.listdir(_fd_dir):

fd_path = os.path.join(_fd_dir, fd)

if os.path.exists(fd_path) and os.readlink(fd_path) == self.file_path:

all_fd.append(fd_path)

return all_fd

if __name__ == "__main__":

_file = File('/tmp/a.txt')

print(_file.status())

python判断文件是否打开_python如何判断一个文件是否处于打开状态?相关推荐

  1. Excel VBA 循环读取一个目录下面多个文件的内容,放到另外一个文件中

    循环读取一个目录下面多个文件的内容,放到另外一个文件中 Public Sub getInputInfo()On Error GoTo errl'OUT対象ファイル開くDim wbOut As Work ...

  2. Java 将文件的内容复制到另一个文件

    java将一个文件的内容复制到另一个文件. 使用BufferedWriter类的read和write方法将一个文件的内容复制到另一个文件. 完整代码 import java.io.*;public c ...

  3. jquery 文件上传 触发两次_点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果上传了3个文件,即发生了三次请求...

    点击三次input按钮,前两次不选择任何文件,第三次选择一个文件,结果页面上出现了3个文件,也就是上传了3个文件 我点击input,不选择任何文件,然后取消文件选择器的窗口,然后第二次次点击input ...

  4. java把一个文件的内容复制到另外一个文件

    /**  * java把一个文件的内容复制到另外一个文件  */ import java.io.File; import java.io.FileInputStream; import java.io ...

  5. 计算机文件管理没有桌面,电脑文件杂乱无章?可能你需要一个文件管理系统

    原标题:电脑文件杂乱无章?可能你需要一个文件管理系统 作为一个效率人士,除了需要学会时间管理,我们还要时刻管理好我们的工具,电脑是很重要的工具,工作生活学习都会用到电脑. 虽然现在手机已经很强大,但很 ...

  6. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  7. python查看文件有多少行_python如何判断文件有多少行

    如何统计读取的一个txt文本的行数呢? python学习网,大量的免费python视频教程,欢迎在线学习! 最简单的办法是把文件读入一个大的列表中,然后统计列表的长度.如果文件的路径是以参数的形式fi ...

  8. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

  9. python判断字符串不相等_python怎么判断两个字符串不相等

    字符串操作是编程语言中经常用到的,常见的有字符串增.删.改.查.在python中,判断两个字符串是否相等或一样,可以使用==或者is来判断:判断不一样可以使用 is not. 示例 使用注意事项 1. ...

  10. python判断列表中含有_Python:判断列表中含有字符串且组成新的列表打印输出-Dotest董浩...

    ''' 题一:判断列表中含有字符串且组成新的列表打印输出 知识点:列表.列表的增删改查.for循环.if判断 ''' #@Author:Dotest软件测试 #@QQ:1274057839 names ...

最新文章

  1. 科大讯飞:让世界听见AI的声音
  2. c++ 管理员身份_CATIA的管理员模式和多版本环境变量设置
  3. JavaFX UI控件教程(十六)之Separator
  4. android的读取xml配置文件,android中XMl文件的读取
  5. libreoffice Error: source file could not be loaded
  6. 理解java虚拟机工作后了解吗_JAVA入门到再次入门——深入理解JAVA虚拟机(二)|七日打卡...
  7. ORACLE 11G DATA GUARD配置之Dataguard简介
  8. django模型_Django模型
  9. UPC 2019年第二阶段我要变强个人训练赛第六场
  10. C#中将字符串中某字符不区分大小写并按全字匹配替换为空
  11. 卡巴斯基离线病毒库升级办法
  12. docx转换成txt linux,如何将doc / docx文件转换为markdown或结构化文本?
  13. lisp 焊接符号标注_焊接符号标注及表示方法-详解aws焊接符号、钢结构焊接符号含义大全...
  14. 山寨手机拇指30掌盟APP软件游戏下载安装破解激活图文教程2
  15. 最大似然估计方法介绍
  16. 无人驾驶系统是个复杂的计算机系统,无人驾驶汽车安全行驶的三大系统
  17. 90后站长-关于个人站长网赚的看法
  18. 棋牌平台短期内如何获得大量玩家
  19. html判断app是否安装类似淘宝,H5浏览器如何检查手机中是否安装某个APP并打开
  20. 达芬奇密码与斐波那契数列

热门文章

  1. redis单线程原理___Redis为何那么快-----底层原理浅析
  2. MySQL 普通索引和唯一索引的区别详解
  3. JAVA WEB篇4——Filter、Listener
  4. 线程中可以创建进程吗_Linux 进程线程是如何创建的?
  5. python对字符串数组进行排序、依据字符数_Python进行数据的排序以及字符串的操作...
  6. 得力条码扫描器怎么用_广东智能物流控制系统怎么选
  7. python获取文件夹名_python基础之获取文件目录及名称
  8. linux 命令行看图片,骚操作:用终端打开图片
  9. ipython文件每次打开重新运行吗_iPython中的多处理:当我不打开任何文件时打开的文件太多?...
  10. 有趣的编程代码_iPad amp; Mac 编程游戏推荐