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

我想知道是否有可能捕获保存方法在通过python打开的文件上。Python:用默认应用程序打开文件并捕获'保存事件'

让我们supose我有我已经开了一个xls文件:

import os, subprocess 

filepath = '/home/myuser/myFile.xls'

subprocess.call(('xdg-open', filepath))

  • 将有可能获取在打开的文件“关闭事件”?
  • 在打开的文件上可以捕获'保存事件'吗?
  • 将有可能做这样的事情在一个文件maped在内存与mmap?

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

回答:

我不认为有一种便携的方式来做到这一点。但是从你的代码看起来你正在使用linux。在linux上,可以通知你有关使用文件的通知。它可以通过pyinotify从python中使用。有关您可以聆听的事件的详细信息,请参阅manpage for inotify。

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

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

因此,您应该仔细考虑是否可以获得足够的可靠性,以确保它是用户可以依赖的功能,或者用户是否更愿意明确地拥有此功能。传统的unix方式是等待编辑应用程序终止。但是,对于使用相同流程打开多个文件的现代编辑器(即使在使用文件名启动时经常重复使用已经运行的流程),这不再是一个通用的解决方案。

以上是 Python:用默认应用程序打开文件并捕获'保存事件' 的全部内容, 来源链接: www.h5w3.com/qa/263804.html

回到顶部