如果 process/application 在 Win 上是 运行,则每隔 X 毫秒检查一次
Check every X-milliseconds if process/application is running on Win
我想每 500 毫秒检查一次 process/application 是否为 运行 (Windows 10)。代码应该非常快速且资源高效!
我的代码是这样的,但是如何构建 500 毫秒。psutil 是最快最好的方法吗?谢谢。
import psutil
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
print("Application is running", (p.info['name']).lower())
else:
print("Application is not Running")
首先,psutil
是一个很不错的库。它具有 C 绑定,因此您将无法获得更快的速度。
import psutil
import time
def print_app():
present = False
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
present = True
print(f"Application is {'' if present else 'not'} present")
start_time = time.time()
print_app()
print("--- %s seconds ---" % (time.time() - start_time))
你可以知道需要多少时间。 0.06sec
对我来说。
如果你想每 0.5 秒执行一次,你可以简单地输入一个 time.sleep
因为 0.5 >> 0.06
.
然后你可以写这样的代码:
import psutil
import time
def print_app():
present = False
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
present = True
print(f"Application is {'' if present else 'not'} present")
while True:
print_app()
sleep(0.5)
PS:我更改了您的代码以检查您的应用程序是否为 运行 而无需打印。这使代码更快,因为 print
需要一点时间。
这样怎么样:
import psutil
import time
def running(pname):
pname = pname.lower()
for p in psutil.process_iter(attrs=['name']):
if pname in p.info['name'].lower():
print(f'{pname} is running')
return # early return
print(f'{pname} is not running')
while True:
running('excel.exe')
time.sleep(0.5)
我想每 500 毫秒检查一次 process/application 是否为 运行 (Windows 10)。代码应该非常快速且资源高效!
我的代码是这样的,但是如何构建 500 毫秒。psutil 是最快最好的方法吗?谢谢。
import psutil
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
print("Application is running", (p.info['name']).lower())
else:
print("Application is not Running")
首先,psutil
是一个很不错的库。它具有 C 绑定,因此您将无法获得更快的速度。
import psutil
import time
def print_app():
present = False
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
present = True
print(f"Application is {'' if present else 'not'} present")
start_time = time.time()
print_app()
print("--- %s seconds ---" % (time.time() - start_time))
你可以知道需要多少时间。 0.06sec
对我来说。
如果你想每 0.5 秒执行一次,你可以简单地输入一个 time.sleep
因为 0.5 >> 0.06
.
然后你可以写这样的代码:
import psutil
import time
def print_app():
present = False
for p in psutil.process_iter(attrs=['pid', 'name']):
if "excel.exe" in (p.info['name']).lower():
present = True
print(f"Application is {'' if present else 'not'} present")
while True:
print_app()
sleep(0.5)
PS:我更改了您的代码以检查您的应用程序是否为 运行 而无需打印。这使代码更快,因为 print
需要一点时间。
这样怎么样:
import psutil
import time
def running(pname):
pname = pname.lower()
for p in psutil.process_iter(attrs=['name']):
if pname in p.info['name'].lower():
print(f'{pname} is running')
return # early return
print(f'{pname} is not running')
while True:
running('excel.exe')
time.sleep(0.5)