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 相关文章推荐
django2+uwsgi+nginx上线部署到服务器Ubuntu16.04
Jun 26 Python
python中sys.argv函数精简概括
Jul 08 Python
2019 Python最新面试题及答案16道题
Apr 11 Python
基于Python打造账号共享浏览器功能
May 30 Python
解决Django migrate不能发现app.models的表问题
Aug 31 Python
基于python调用psutil模块过程解析
Dec 20 Python
python支持多线程的爬虫实例
Dec 21 Python
Python实现多线程下载脚本的示例代码
Apr 03 Python
python模拟斗地主发牌
Apr 22 Python
Sentry错误日志监控使用方法解析
Nov 12 Python
使用django自带的user做外键的方法
Nov 30 Python
如何利用Python实现一个论文降重工具
Jul 09 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下载文件的代码示例
2012/06/29 PHP
PHP脚本监控Nginx 502错误并自动重启php-fpm
2015/05/13 PHP
详解HTTP Cookie状态管理机制
2016/01/14 PHP
php实现微信和支付宝支付的示例代码
2020/08/11 PHP
jQuery中的.bind()、.live()和.delegate()之间区别分析
2011/06/08 Javascript
图片上传判断及预览脚本的效果实例
2013/08/07 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
jQuery中closest和parents的区别分析
2015/05/07 Javascript
用jQuery向div中添加Html文本内容的简单实现
2016/07/13 Javascript
js简单时间比较的方法
2016/08/02 Javascript
JS数组去掉重复数据只保留一条的实现代码
2016/08/11 Javascript
深入理解vue.js双向绑定的实现原理
2016/12/05 Javascript
layer实现弹窗提交信息
2016/12/12 Javascript
EasyUI修改DateBox和DateTimeBox的默认日期格式示例
2017/01/18 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
Javascript 一些需要注意的细节(必看篇)
2017/07/08 Javascript
浅谈Node.js 沙箱环境
2018/05/15 Javascript
微信小程序实现长按删除图片的示例
2018/05/18 Javascript
微信小程序开发中var that =this的用法详解
2020/01/18 Javascript
js 获取本周、上周、本月、上月、本季度、上季度的开始结束日期
2020/02/01 Javascript
vue组件传值的实现方式小结【三种方式】
2020/02/05 Javascript
[45:52]2018DOTA2亚洲邀请赛 4.1小组赛 A组加赛 LGD vs Liquid
2018/04/02 DOTA
python 提取文件的小程序
2009/07/29 Python
在Python中使用SimpleParse模块进行解析的教程
2015/04/11 Python
Numpy 将二维图像矩阵转换为一维向量的方法
2018/06/05 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python flask web服务实现更换默认端口和IP的方法
2019/07/26 Python
python调用函数、类和文件操作简单实例总结
2019/11/29 Python
使用jupyter notebook将文件保存为Markdown,HTML等文件格式
2020/04/14 Python
python 如何在测试中使用 Mock
2021/03/01 Python
世界上最大的曲棍球商店:Pro Hockey Life
2017/10/30 全球购物
Sandro Paris美国官网:典雅别致的法国时尚服饰品牌
2017/12/26 全球购物
泰国国际航空公司官网:Thai Airways International
2019/12/04 全球购物
物流合作计划书
2014/01/10 职场文书
毕业生大学生活自我总结
2014/01/31 职场文书