python实现运行程序x.exe,获取x.exe的pid,根据pid监测使用情况,运行完成后输出该pid运行过程中的最大内存占用
时间: 2024-10-08 10:07:43 浏览: 21
在Python中,可以使用`subprocess`模块来执行外部命令,如`.exe`文件,并通过`psutil`库来监测进程信息,包括PID、内存占用等。下面是一个简单的示例,展示如何实现这个功能:
```python
import subprocess
import psutil
# 执行 .exe 文件并获取其 PID
def run_and_get_pid(exe_path):
process = subprocess.Popen([exe_path], creationflags=subprocess.CREATE_NEW_PROCESS_GROUP) # 使用CREATE_NEW_PROCESS_GROUP创建新进程组,方便后续操作
pid = process.pid
print(f"执行 {exe_path} 后,PID: {pid}")
# 根据 PID 监测使用情况
def monitor_process(pid):
while True:
try:
process_info = psutil.Process(pid)
memory_usage = process_info.memory_percent()
print(f"进程 {pid} 的内存占用: {memory_usage}%")
if process_info.status() == psutil.STATUS_ZOMBIE: # 检查进程是否已结束
break
except (psutil.NoSuchProcess, psutil.AccessDenied): # 处理进程不存在或权限问题
print("进程已结束或访问权限受限")
break
time.sleep(5) # 每隔5秒检查一次
# 主函数
if __name__ == "__main__":
exe_path = r"C:\path\to\your\x.exe" # 替换为你.exe的实际路径
run_and_get_pid(exe_path)
# 开始监测
pid = get_pid_from_above_function(exe_path) # 如果没提供,假设你有一个返回PID的函数
monitor_process(pid)
print("\n监控结束")
阅读全文