Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.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
Python运行应用程序并等待加载,然后再进行交互_Python_Subprocess_Python Os - Fatal编程技术网

Python运行应用程序并等待加载,然后再进行交互

Python运行应用程序并等待加载,然后再进行交互,python,subprocess,python-os,Python,Subprocess,Python Os,我正在尝试打开一个应用程序并与之交互。我面临一个问题,我确实打开了应用程序,但由于它的大小,它需要一段时间才能出现,因此我希望以动态/Python的方式捕获应用程序对象 import os import subprocess import win32com.client timeout = 5 big_app = r'C:\Path2BigApp\app.exe' os.startfile(big_app) try: my_app_obj = win32com.client.Get

我正在尝试打开一个应用程序并与之交互。我面临一个问题,我确实打开了应用程序,但由于它的大小,它需要一段时间才能出现,因此我希望以动态/Python的方式捕获应用程序对象

import os
import subprocess
import win32com.client

timeout = 5

big_app = r'C:\Path2BigApp\app.exe'
os.startfile(big_app)

try:
    my_app_obj = win32com.client.GetObject("AppName")
    # further steps with my_app_obj
except:
    print("nay")

我试过
os.startfile(big_app)
启动app,但不等待app成功打开,所以它总是计算“nay”、
subprocess.call(big_app,timeout)
打开app并冻结python,直到app终止,然后计算以下代码,
subprocess.Popen(big_app)
什么会给出与第一个选项相同的结果,以及
subprocess.Popen(big_app).wait(timeout)
subprocess.Popen(big_app).communication(timeout)
,这只会导致TimeoutExpired错误,因为没有交互/终止。我知道我可以在循环中使用一些等待/睡眠操作,但我希望有更多的python方法来解决这个问题。你有什么建议吗?

你有没有办法检查你的应用程序是否加载成功


我会启动一个
while
循环,尝试检测应用程序何时加载。如果未加载-等待一秒钟并重复,如果已加载,则继续。

将该尝试放入一个循环中,该循环将继续进行,直到成功获取对象为止。。。你也许可以通过管道发送一些信号,但这增加了一系列的复杂性,而且没有真正的改善