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之一个免费的实验室
Sep 14 Python
Python base64编码解码实例
Jun 21 Python
python如何获取服务器硬件信息
May 11 Python
python中Switch/Case实现的示例代码
Nov 09 Python
python 获取utc时间转化为本地时间的方法
Dec 31 Python
python实现祝福弹窗效果
Apr 07 Python
python 含子图的gif生成时内存溢出的方法
Jul 07 Python
python实现大战外星人小游戏实例代码
Dec 26 Python
python如何随机生成高强度密码
Aug 19 Python
Pytest之测试命名规则的使用
Apr 16 Python
python中的被动信息搜集
Apr 29 Python
python flask框架快速入门
May 14 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
杏林同学录(三)
2006/10/09 PHP
PHP中使用glob函数实现一句话删除某个目录下的所有文件
2014/07/22 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP中explode函数和split函数的区别小结
2016/08/24 PHP
php及codeigniter使用session-cookie的方法(详解)
2017/04/06 PHP
js中的前绑定和后绑定详解
2013/08/01 Javascript
JS实现下拉菜单赋值到文本框的方法
2015/08/18 Javascript
浅谈javascript的Touch事件
2015/09/27 Javascript
关于meta viewport中target-densitydpi属性详解(推荐)
2017/08/18 Javascript
VUE前端cookie简单操作
2017/10/17 Javascript
深入理解 webpack 文件打包机制(小结)
2018/01/08 Javascript
angular第三方包开发整理(小结)
2018/04/19 Javascript
Vue中父子组件通讯之todolist组件功能开发
2018/05/21 Javascript
解决vue js IOS H5focus无法自动弹出键盘的问题
2018/08/30 Javascript
Koa代理Http请求的示例代码
2018/10/10 Javascript
js逆向解密之网络爬虫
2019/05/30 Javascript
JS实现“全选”和"全不选"功能代码实例
2020/02/06 Javascript
nodejs制作小爬虫功能示例
2020/02/24 NodeJs
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
[03:21]辉夜杯主赛事 12月25日TOP5
2015/12/26 DOTA
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
Python 中的lambda函数介绍
2018/10/10 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
Tensorflow 卷积的梯度反向传播过程
2020/02/10 Python
CSS3 3D位移translate效果实例介绍
2016/05/03 HTML / CSS
HTML5 微格式和相关的属性名称
2010/02/10 HTML / CSS
使用iframe+postMessage实现页面跨域通信的示例代码
2020/01/14 HTML / CSS
台湾最大网路书店:博客来
2018/03/18 全球购物
销售人员个人求职信
2013/09/26 职场文书
《猴子种果树》教学反思
2014/04/26 职场文书
研究生求职自荐书
2014/06/23 职场文书
房屋维修申请报告
2015/05/18 职场文书
党支部意见范文
2015/06/02 职场文书
浅谈Go语言多态的实现与interface使用
2021/06/16 Golang