如何通过python检查文件是否被占用


Posted in Python onDecember 18, 2020

一、思路

1、通过window的aip函数CreateFile()函数获得文件句柄

2、检测在获得句柄的时候是否报错“文件被占用无法打开”

3、如果没有报错返回文件句柄,说明文件没有被占用;如果报错说明文件被占用

二、需import

import win32filefrom ctypes import windll 两个库

三、代码

#-*- coding: utf-8 -*-
from ctypes import windll
import time
import win32file
from win32file import *
 
def is_open(filename):
 
  try:
    #首先获得句柄
    vHandle =win32file.CreateFile(filename, GENERIC_READ, 0, None, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, None)
    #判断句柄是否等于INVALID_HANDLE_VALUE
    if int(vHandle)==INVALID_HANDLE_VALUE:
      print("# file is already open")
      return True # file is already open
    win32file.CloseHandle(vHandle)
 
  except Exception as e:
    print(e)
    return True

该代码说白了就是将C++的写法按python写法来写的,网上的其他写法通过os包来做的我发现失败了。

到此这篇关于如何通过python检查文件是否被占用的文章就介绍到这了,更多相关python文件占用内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python安装第三方库及常见问题处理方法汇总
Sep 13 Python
Python cookbook(数据结构与算法)在字典中将键映射到多个值上的方法
Feb 18 Python
Python之文字转图片方法
May 10 Python
matplotlib subplots 调整子图间矩的实例
May 25 Python
python 中字典嵌套列表的方法
Jul 03 Python
python实现彩票系统
Jun 28 Python
django_orm查询性能优化方法
Aug 20 Python
python tkinter界面居中显示的方法
Oct 11 Python
在pycharm中为项目导入anacodna环境的操作方法
Feb 12 Python
使用OpenCV实现道路车辆计数的使用方法
Jul 15 Python
Python 爬虫性能相关总结
Aug 03 Python
Python时间操作之pytz模块使用详解
Jun 14 Python
python 实现端口扫描工具
Dec 18 #Python
Python-split()函数实例用法讲解
Dec 18 #Python
Python+Opencv实现把图片、视频互转的示例
Dec 17 #Python
python 利用jieba.analyse进行 关键词提取
Dec 17 #Python
Python基础进阶之海量表情包多线程爬虫功能的实现
Dec 17 #Python
python 实现一个简单的线性回归案例
Dec 17 #Python
python BeautifulSoup库的安装与使用
Dec 17 #Python
You might like
php set_magic_quotes_runtime() 函数过时解决方法
2010/07/08 PHP
php操作xml
2013/10/27 PHP
thinkPHP模板引擎用法示例
2016/12/08 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
php微信开发之谷歌测距
2018/06/14 PHP
PHP安装memcache扩展的步骤讲解
2019/02/14 PHP
PHP+jQuery实现即点即改功能示例
2019/02/21 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JS正则验证邮箱的格式详细介绍
2013/11/19 Javascript
用JavaScript实现页面重定向功能的教程
2015/06/04 Javascript
jQuery实现鼠标点击弹出渐变层的方法
2015/07/09 Javascript
jQuery快速实现商品数量加减的方法
2017/02/06 Javascript
JavaScript中常见的八个陷阱总结
2017/06/28 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
从源码里了解vue中的nextTick的使用
2018/11/22 Javascript
JS实现的点击按钮图片上下滚动效果示例
2019/01/28 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
python获取当前运行函数名称的方法实例代码
2017/04/06 Python
WIn10+Anaconda环境下安装PyTorch(避坑指南)
2019/01/30 Python
Python如何将函数值赋给变量
2020/04/28 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
OpenCV图片漫画效果的实现示例
2020/08/18 Python
html5中如何将图片的绝对路径转换成文件对象
2018/01/11 HTML / CSS
初二物理教学反思
2014/01/29 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
高三毕业典礼演讲稿
2014/05/13 职场文书
邀请函的格式
2015/01/30 职场文书
邀请书格式范文
2015/02/02 职场文书
PHP使用非对称加密算法RSA
2021/04/21 PHP
ES6 解构赋值的原理及运用
2021/05/25 Javascript
pandas提升计算效率的一些方法汇总
2021/05/30 Python
Python Pandas pandas.read_sql函数实例用法
2021/06/21 Python
Spring Boot 启动、停止、重启、状态脚本
2021/06/26 Java/Android
浅谈Redis位图(Bitmap)及Redis二进制中的问题
2021/07/15 Redis
vue-cil之axios的二次封装与proxy反向代理使用说明
2022/04/07 Vue.js
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js