Python: 打开默认应用程序并捕获“保存事件”

2024-05-29 11:34:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道是否可以在python打开的文件上捕获save方法。在

假设我有一个xls文件,我用它打开:

import os, subprocess

filepath = '/home/myuser/myFile.xls'
subprocess.call(('xdg-open', filepath))
  • 是否可以在打开的文件上捕获'关闭事件?在
  • 是否可以在打开的文件上捕获“保存事件”?在
  • 在一个文件里能做什么吗?在

我试图在USB中有一个压缩文件夹,我想开发一个定制的Python应用程序,它可以显示压缩文件中的文件/文件夹,而无需直接与之交互。在


Tags: 文件方法import文件夹homeossave事件
1条回答
网友
1楼 · 发布于 2024-05-29 11:34:47

我不认为有一种便携的方法可以做到这一点。但从你看来,你的代码看起来像是在linux上工作。在linux上有一个inotify,它可以通知您文件的使用情况。它可以通过pyinotify从python中使用。有关可以侦听的事件的详细信息可在manpage for inotify中找到。在

您可以监视文件上的IN_CLOSE_WRITE事件,以捕捉应用程序中的“保存”操作。但根据应用程序的不同,它可能不太可靠。例如,应用程序可以在最初加载文件时打开文件进行写入。或者应用程序可能不会真正保存现有文件,而是保存到另一个临时文件中,并使用移动操作替换旧文件。在

也可以通过监听文件的实际更改(在“修改”中)或对包含文件的目录的更改(在目录上而不是在文件上进行inotify并查看文件名)来修复这些问题。但在其他情况下,您的脚本可能会因为阅读这些事件而感到困惑(例如自动保存)。在

因此,您应该仔细考虑您是否能够获得足够可靠的特性,使其真正成为用户可以依赖的特性,或者用户是否最好显式地拥有它。传统的unix方法是等待编辑应用程序终止。但是现代的编辑器使用同一个进程打开多个文件(经常重用已经运行的进程,即使是以文件名启动的),这不再是一个通用的解决方案。在

相关问题 更多 >

    热门问题