Python判断远程服务器上Excel文件是否被人打开的方法


Posted in Python onJuly 13, 2020

最近工作中需要去判断远程服务器上的某个Excel文件是否被打开,如果被人打开,则等待,如果没人打开使用,则去填写数据进Excel文件。

开始想的很简单,和其他语言一样,比如C#,打开文件,如果报错说明被占用,结果发现,Excel文件被其他人打开的情况下,python里面用可写'w'的方式打开文件,实际上并没有报错,执行完成也没任何错误,只是最后看Excel文件里面,发现实际要写入的东西并没被写入。

然后在网上找了一些方法,比如用openpyxl,pywin32等等,发现都做不到真正去判断Excel文件是否被其他人打开了。

后来想到一个解决方法:判断是否有“~$”开头的同名文件在同级目录下存在:比如test.xlsx被打开后会存在~$test.xlsx文件,如果没被打开则没有该文件。

Excel文件(具体来说应该是MS office文件)每次被打开后其实是会创建一个隐藏的"~$"开头的系统隐藏文件,比如打开test.xlsx后同级目录下其实是会有~$test.xlsx文件:

Python判断远程服务器上Excel文件是否被人打开的方法

因为~$test.xlsx是系统隐藏文件,如果要看到的话,需要显示所有系统隐藏文件信息,方法如下:

  • 点击任一文件夹左上角的“文件”
  • 点击“选项”打开“文件夹选项”
  • 点击“查看”条目,勾选“显示隐藏的文件、文件夹和驱动器”,然后去掉“隐藏受保护的操作系统文件(推荐)”的勾选

这样就可以看到~$test.xlsx这个隐藏文件了。

Python判断远程服务器上Excel文件是否被人打开的方法

知道了这个方法后,要去判断Excel文件是否被打开就很容易了,只需要判断~$test.xlsx文件是否存在即可,如果存在则认为test.xlsx文件被人打开,等待关闭,否则则认为该文件没人打开,直接编辑即可。

对于本地和远程服务器上的Excel文件否是被打开都可以用该方法。

到此这篇关于Python判断远程服务器上Excel文件是否被人打开的方法的文章就介绍到这了,更多相关python判断远程服务器excel文件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python判断端口是否打开的实现代码
Feb 10 Python
python链接Oracle数据库的方法
Jun 28 Python
matplotlib简介,安装和简单实例代码
Dec 26 Python
如何用Python实现简单的Markdown转换器
Jul 16 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
python单例模式的多种实现方法
Jul 26 Python
python3获取当前目录的实现方法
Jul 29 Python
pip安装python库的方法总结
Aug 02 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
python sklearn常用分类算法模型的调用
Oct 16 Python
Python数据相关系数矩阵和热力图轻松实现教程
Jun 16 Python
Python自带的IDE在哪里
Jul 01 Python
Python依赖包迁移到断网环境操作
Jul 13 #Python
用Python爬取LOL所有的英雄信息以及英雄皮肤的示例代码
Jul 13 #Python
python--shutil移动文件到另一个路径的操作
Jul 13 #Python
python virtualenv虚拟环境配置与使用教程详解
Jul 13 #Python
python 安装移动复制第三方库操作
Jul 13 #Python
基于Python爬取fofa网页端数据过程解析
Jul 13 #Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 #Python
You might like
来自phpguru得Php Cache类源码
2010/04/15 PHP
php实现比较两个文件夹异同的方法
2015/06/18 PHP
PHP实现事件机制实例分析
2015/06/26 PHP
Symfony2在Nginx下的配置方法图文教程
2016/02/04 PHP
php过滤输入操作之htmlentities与htmlspecialchars用法分析
2017/02/17 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
原生javascript兼容性测试实例
2013/07/01 Javascript
Jquery焦点与失去焦点示例应用
2014/06/10 Javascript
JavaScript实现穷举排列(permutation)算法谜题解答
2014/12/29 Javascript
jquery实现点击页面计算点击次数
2015/01/23 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
使用DeviceOne实现微信小程序功能
2016/12/29 Javascript
nodejs基础应用
2017/02/03 NodeJs
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
jQuery实现拼图小游戏(实例讲解)
2017/07/24 jQuery
webpack+vuex+axios 跨域请求数据的示例代码
2018/03/06 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
用vue2.0实现点击选中active其他选项互斥的效果
2018/04/12 Javascript
node版本管理工具n包使用教程详解
2018/11/09 Javascript
微信小程序实现点击图片放大预览
2019/10/21 Javascript
jquery实现商品sku多属性选择功能(商品详情页)
2019/12/20 jQuery
详解javascript脚本何时会被执行
2021/02/05 Javascript
[00:32]2018DOTA2亚洲邀请赛Newbee出场
2018/04/03 DOTA
python中如何使用朴素贝叶斯算法
2017/04/06 Python
详解Python中的分组函数groupby和itertools)
2018/07/11 Python
tensorflow实现二维平面模拟三维数据教程
2020/02/11 Python
Python自动发送和收取邮件的方法
2020/08/12 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
New delete 与malloc free 的联系与区别
2013/02/04 面试题
一道SQL面试题
2012/12/31 面试题
入党申请自荐书范文
2014/02/11 职场文书
幼儿园元旦活动感言
2014/03/02 职场文书
护理专业自我评价
2015/03/11 职场文书
2015年宣传工作总结
2015/04/08 职场文书
python3.9之你应该知道的新特性详解
2021/04/29 Python
MySql存储过程之逻辑判断和条件控制
2021/05/26 MySQL