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

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

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

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

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

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

点击任一文件夹左上角的“文件”

点击“选项”打开“文件夹选项”

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

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

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

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

python检测excel是否打开_Python判断远程服务器上Excel文件是否被人打开的方法_学领未来...相关推荐

  1. 服务器上文件一直被打开吗,Python: 如何判断远程服务器上Excel文件是否被人打开...

    最近工作中需要去判断远程服务器上的某个Excel文件是否被打开,如果被人打开,则等待,如果没人打开使用,则去填写数据进Excel文件. 开始想的很简单,和其他语言一样,比如C#,打开文件,如果报错说明 ...

  2. 怎么在服务器上拷贝文件夹,怎么从远程服务器上拷贝文件夹

    怎么从远程服务器上拷贝文件夹 内容精选 换一换 如果DDK和Atlas 200 DK Atlas 300不在同一服务器,请执行1~7.如果DDK和Atlas 200 DK Atlas 300在同一服务 ...

  3. java解压服务器文件夹,java获取远程服务器上的文件夹

    java获取远程服务器上的文件夹 内容精选 换一换 安装X722板载网卡驱动软件包,使裸金属服务器支持在v5服务器上下发.其他类型服务器可跳过此步骤.本文以Windows Server 2016为例, ...

  4. 服务器上的文件如何查看,如何查看远程服务器上的文件

    如何查看远程服务器上的文件 内容精选 换一换 分析辅助软件是一款支持部署到多台服务器目标环境上,实现对整个业务集群的数据采集和优化的组件.已成功登录Java性能分析.待安装分析辅助软件的服务器已开启s ...

  5. java 获取服务器上文件,java获取远程服务器上的文件

    java获取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei J ...

  6. 读取远程服务器上文件内容,读取远程服务器上的文件

    读取远程服务器上的文件 内容精选 换一换 已成功登录Java性能分析.待安装Guardian的服务器已开启sshd.待安装Guardian的服务器已安装JRE,JRE版本要求为Huawei JDK 8 ...

  7. 如何通过上传文件控制服务器,怎么给远程服务器上传文件

    怎么给远程服务器上传文件 内容精选 换一换 云堡垒机与RADIUS服务器对接,认证登录系统的用户身份.本小节主要介绍如何配置RADIUS域认证模式,并可对配置的RADIUS认证进行用户有效性测试.用户 ...

  8. php无法连接远程服务器,php-无法在远程服务器上包含文件

    我的问题是我无法在远程服务器上包含文件. echo "Including\n"; require_once("http://xx.xxx.xxx.xx:8080/path ...

  9. html服务器端运行python,如何通过点击网页在远程服务器上运行python脚本?

    我在远程服务器上有一个python程序.我需要创建一个web页面(html代码和服务器上python脚本所在的目录相同)有一个按钮,单击哪个python脚本应该运行.还有一件事是我们需要从本地机器上选 ...

最新文章

  1. 【JVM】Java对象创建的流程步骤
  2. oracle9i在window server 2003 sp2 企业版突破1.7G内存限制
  3. 分页请求json数据_pyspider抓取虎嗅网文章数据
  4. PLSQL Developer 出现ORU-10027: buffer overflow, limit of 10000 bytes
  5. linux nginx线程池,nginx使用线程池提升9倍性能
  6. 中山大学计算机是A类学科吗,中山大学a类学科有哪些?附中大a类学科名单
  7. easyplayerpro 使用说明_EasyPlayerPro(Windows)流媒体播放器开发之ffmpeg log输出报错
  8. java项目_值得学习和练手的Java企业级开源项目,强烈推荐!
  9. 【王道操作系统笔记】系统调用
  10. 传导、辐射和谐波总结,大家共同学习
  11. 根据用户输入的参数的个数来计算长方形或正方形的面积_小面积(2-4.5㎡)卫生间,怎么做干湿分离?(附:方案+参数+案例)...
  12. subs php,nginx subs_filter对输出内容进行替换
  13. 【优雅解决】:换源后 sudo apt-get update 出现 N: Updating from such a repository can't be done securely……
  14. python将数值存入excel指定单元格
  15. 有没有免费压缩视频的软件?压缩视频其实很简单
  16. golang多版本管理工具g使用(windows)
  17. 3.3 典型交易流程
  18. 软件开发生命周期有几个阶段?
  19. 两个日期相差月数计算公式
  20. Uniapp 应用开机自启插件 Ba-Autoboot

热门文章

  1. 【个人笔记】OpenCV4 C++ 图像处理与视频分析 01课
  2. pytorch 深入理解 tensor.scatter_ ()用法
  3. Linux之fd与dup2复制fd用法
  4. Emacs代码折叠/显示
  5. Android5.1权限问题解决
  6. tensorflow之安装opencv
  7. ping命令将结果输出到文本
  8. 电脑安装ubuntu linux操作系统
  9. 每日三道前端面试题--vue 第三弹
  10. History命令的显示带时间