Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
osx上python中subprocess.call([";open";,";-W";,FileName])的替代项_Python_Macos_Applescript_Subprocess - Fatal编程技术网

osx上python中subprocess.call([";open";,";-W";,FileName])的替代项

osx上python中subprocess.call([";open";,";-W";,FileName])的替代项,python,macos,applescript,subprocess,Python,Macos,Applescript,Subprocess,通过使用子进程调用([“open”,“-W”,FileName]),我正在使用MacOSX和Python2.7。但在这种情况下,会导致open等待它打开的应用程序(或已经打开的应用程序)退出。因此,不需要这样做。我希望open等待,直到关闭特定打开的文件,而不管它打开的应用程序是否已退出(因此,该特定应用程序可能会保留以前打开的文件) 我也问了,但没有得到想要的答案只需使用: handle = subprocess.Popen(['open', '-W', filename]) …继续你的一天

通过使用
子进程调用([“open”,“-W”,FileName])
,我正在使用MacOSX和Python2.7。但在这种情况下,会导致
open
等待它打开的应用程序(或已经打开的应用程序)退出。
因此,不需要这样做。我希望
open
等待,直到关闭特定打开的文件,而不管它打开的应用程序是否已退出(因此,该特定应用程序可能会保留以前打开的文件) 我也问了,但没有得到想要的答案

只需使用:

handle = subprocess.Popen(['open', '-W', filename])
…继续你的一天;这将启动子流程,但不会阻止其退出。如果要检查进程的状态,您仍然有
句柄。(存储此句柄可能是防止垃圾收集所必需的)


如果您需要处理一个已经打开的编辑器实例处理该文件的情况,并且需要强制阻止,直到该先前存在的实例中只有该文件被关闭为止,那么如果没有特定于编辑器的支持,这是不可能的。

FYI,CamelCase对于Python中的变量名不被认为是常规的。有关更多信息,请参阅PEP-8:“我希望
open
等待,直到关闭特定打开的文件,无论它打开的应用程序是否已退出”--
lsof
是否在OSX上工作?相关:。类似的问题,不同的操作系统。假设文件是abc.txt,那么subprocess.Popen([“open”,“-W”,FileName])将在TextEdit中打开它。然后subprocess.Popen([“open”,“-W”,FileName])将等待TextEdit未强制退出。假设我打开了一个多选项卡文本编辑器并运行我的应用程序。文本文件将在我已经运行的编辑器的选项卡中打开。然后我的程序将拒绝继续,直到我关闭所有选项卡,包括那些与我的任务无关的选项卡。我想避免这种情况“等待TexEdit不是强制退出”是什么意思?我想阻止,直到关闭该特定文件,而不考虑该应用程序的其他文件。subprocess.Popen(['open','-W',filename])将等待TexEdit未从停靠位置强制退出,即终止TexEdit进程AHH。答案很简单——你不能。应用程序不提供这种反馈。@J.F.Sebastian,只有当编辑器在修改文件时保持文件打开时才可以。并非所有的编辑都这样做;在完成读取时关闭句柄,然后在保存时重新打开以进行写入是相当常见的。