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使用PyFetion来发送短信的例子
Apr 22 Python
Python中设置变量作为默认值时容易遇到的错误
Apr 03 Python
Python实现的爬虫功能代码
Jun 24 Python
python 换位密码算法的实例详解
Jul 19 Python
使用C++扩展Python的功能详解
Jan 12 Python
python构建深度神经网络(续)
Mar 10 Python
查找python项目依赖并生成requirements.txt的方法
Jul 10 Python
python实现自动登录
Sep 17 Python
Python爬取成语接龙类网站
Oct 19 Python
python使用参数对嵌套字典进行取值的方法
Apr 26 Python
Mac安装python3的方法步骤
Aug 09 Python
python爬虫实例之获取动漫截图
May 31 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
五个PHP程序员工具
2008/05/26 PHP
浅谈php中mysql与mysqli的区别分析
2013/06/10 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
js中传递特殊字符(+,&)的方法
2014/01/16 Javascript
JavaScript中的Math.atan2()方法使用详解
2015/06/15 Javascript
javascript字符串替换函数如何一次性全部替换掉
2015/10/30 Javascript
jquery对复选框(checkbox)的操作汇总
2016/01/13 Javascript
Jquery 整理元素选取、常用方法一览表
2016/11/26 Javascript
简单实现js选项卡切换效果
2017/02/09 Javascript
详解在WebStorm中添加Vue.js单文件组件的高亮及语法支持
2017/10/21 Javascript
微信小程序基于本地缓存实现点赞功能的方法
2017/12/18 Javascript
node puppeteer(headless chrome)实现网站登录
2018/05/09 Javascript
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
Vue项目history模式下微信分享爬坑总结
2019/03/29 Javascript
JavaScript 面向对象基础简单示例
2019/10/02 Javascript
vue 使用class创建和清除水印的示例代码
2020/12/25 Vue.js
JS数组索引检测中的数据类型问题详解
2021/01/11 Javascript
[57:09]DOTA2-DPC中国联赛 正赛 Phoenix vs Dynasty BO3 第一场 1月26日
2021/03/11 DOTA
python回调函数用法实例分析
2015/05/09 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
python3+PyQt5实现支持多线程的页面索引器应用程序
2018/04/20 Python
利用nohup来开启python文件的方法
2019/01/14 Python
Python 的AES加密与解密实现
2019/07/09 Python
python Django 创建应用过程图示详解
2019/07/29 Python
解决django接口无法通过ip进行访问的问题
2020/03/27 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
介绍一下SQL注入攻击的种类和防范手段
2012/02/18 面试题
贷款委托书怎么写
2014/08/02 职场文书
教师三严三实学习心得体会
2014/10/11 职场文书
个人贷款收入证明
2014/10/26 职场文书
2014年乡镇卫生院工作总结
2014/11/24 职场文书
老员工辞职信范文
2015/05/12 职场文书
tensorflow中的梯度求解及梯度裁剪操作
2021/05/26 Python
django 认证类配置实现
2021/11/11 Python
Python利用FlashText算法实现替换字符串
2022/03/31 Python
SQL Server表分区降低运维和维护成本
2022/04/08 SQL Server