Python 运行 应用并等待其加载后再进行交互
Python run app and wait for it to load before interacting
我正在尝试打开一个应用程序并与之交互。我在打开应用程序时遇到一个问题,但由于它的大小,它需要一段时间才能出现,因此我想以 dynamic/pythonic 方式捕获应用程序对象。
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)
启动应用程序但不等待应用程序成功打开,所以它总是评估为“否”,subprocess.call(big_app, timeout)
打开应用程序并冻结 python 直到应用程序终止,然后评估以下代码,subprocess.Popen(big_app)
给出与第一个选项相同的结果,而 subprocess.Popen(big_app).wait(timeout)
& subprocess.Popen(big_app).communicate(timeout)
仅导致 TimeoutExpired 错误,因为没有 interaction/termination 那里。我知道我可以在循环中使用一些 wait/sleep 操作,但我希望有更多 pythonic 方法来解决这个问题。你对此有什么建议吗?
你有方法检查你的应用程序是否加载成功吗?
我会启动一个 while
循环,尝试检测应用何时加载。如果未加载 - 请稍等并重复,如果已加载则继续。
我正在尝试打开一个应用程序并与之交互。我在打开应用程序时遇到一个问题,但由于它的大小,它需要一段时间才能出现,因此我想以 dynamic/pythonic 方式捕获应用程序对象。
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)
启动应用程序但不等待应用程序成功打开,所以它总是评估为“否”,subprocess.call(big_app, timeout)
打开应用程序并冻结 python 直到应用程序终止,然后评估以下代码,subprocess.Popen(big_app)
给出与第一个选项相同的结果,而 subprocess.Popen(big_app).wait(timeout)
& subprocess.Popen(big_app).communicate(timeout)
仅导致 TimeoutExpired 错误,因为没有 interaction/termination 那里。我知道我可以在循环中使用一些 wait/sleep 操作,但我希望有更多 pythonic 方法来解决这个问题。你对此有什么建议吗?
你有方法检查你的应用程序是否加载成功吗?
我会启动一个 while
循环,尝试检测应用何时加载。如果未加载 - 请稍等并重复,如果已加载则继续。