我正在使用mac osx和python 2.7通过https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/open.1.html我使用了subprocess.call(["open","-W", FileName])
。但在这种情况下,会导致open
等待它打开的应用程序(或已经打开的应用程序)退出。所以,这是不可取的。我希望open
等待,直到特定打开的文件被关闭,无论它打开的应用程序是否已经退出(因此可能有以前打开的文件仍然在该特定应用程序中)
我也在Blocking call while opening a file in python on osx询问,但没有得到理想的答案
答案 0 :(得分:1)
只需使用:
handle = subprocess.Popen(['open', '-W', filename])
...开始你的一天;这将启动子进程,但不会阻止其退出。如果要检查进程的状态,您仍然拥有handle
。 (可能需要存储此句柄以防止垃圾回收)。
如果您需要处理已打开的编辑器实例处理文件的情况 - 并强制执行阻塞,直到该预先存在的实例中的此文件关闭为止 - 如果没有特定于编辑器的支持,则无法实现此目的。