如何查看当前时刻py或exe文件的运行实例次数?
查看Python脚本/打包EXE运行实例数的方法
运行实例数完全可以检测,可通过系统手动查询或代码内置检测两种方式实现:
方法1:系统层面手动查询
- Windows系统:
可以直接打开任务管理器,查找对应进程:直接运行py文件时进程名为python.exe(无后台窗口时为pythonw.exe),打包后的exe进程名为你自定义的exe文件名。
也可以用cmd执行命令快速统计:
查py脚本实例:tasklist | findstr "python.exe"
查exe实例:tasklist | findstr "你的程序名.exe"
返回结果的行数就是当前运行的实例数。 - macOS/Linux系统:
终端执行命令统计:
查py脚本实例:ps aux | grep "python 你的脚本名.py" | grep -v grep
查exe实例:ps aux | grep "你的程序名" | grep -v grep
返回结果的行数就是当前运行的实例数。
方法2:在程序内部自动检测
可以直接在代码中加入检测逻辑,运行时自动获取当前实例数,无需手动查询。
首先安装依赖库:pip install psutil
示例代码如下:
import psutil import os def get_instance_count(): current_script = os.path.basename(__file__) exe_name = current_script.replace('.py', '.exe') count = 0 for proc in psutil.process_iter(['name', 'cmdline']): try: # 匹配Python脚本运行场景 if proc.info['name'] in ('python', 'python.exe', 'pythonw.exe'): if current_script in proc.info['cmdline']: count += 1 # 匹配打包后EXE运行场景 elif proc.info['name'] == exe_name: count += 1 except (psutil.AccessDenied, psutil.NoSuchProcess): # 跳过无权限访问或已经结束的进程 continue return count if __name__ == '__main__': print(f"当前程序运行实例数:{get_instance_count()}")
上述代码无论是直接运行py脚本,还是打包成EXE后运行,都可以正常统计实例数,普通使用场景下准确率可以达到100%。
注意事项
统计时不要只匹配python.exe这类通用进程名,否则会把其他运行中的Python脚本也统计进来,导致结果错误,必须同时匹配对应的脚本名或EXE名才能得到准确结果。
内容的提问来源于stack exchange,提问作者Shavow
相关产品推荐
相关产品推荐

