如何用Python批量在独立IDLE窗口运行各目录下的main.py脚本
批量启动独立IDLE窗口运行多脚本的解决方案
你之前用exec()的方式会把所有脚本都塞进当前IDLE进程里执行,自然都在同一个窗口。要实现每个脚本开独立IDLE窗口,得启动新的IDLE进程才行,用subprocess模块就能轻松搞定。
直接上可用的代码:
import subprocess import sys import os # 循环处理1到8号文件夹里的main.py for i in range(1, 9): script_path = os.path.join(str(i), "main.py") # 先检查脚本是否存在,避免无意义的报错 if os.path.isfile(script_path): # 启动独立IDLE窗口运行目标脚本 subprocess.Popen([sys.executable, "-m", "idlelib", "-r", script_path]) else: print(f"注意:{script_path} 不存在,已跳过该脚本")
代码细节解释:
sys.executable:获取当前Python解释器的绝对路径,这样能确保用的是和你启动这个脚本相同的Python环境,不会出现版本不匹配的问题。-m idlelib:这是Python官方推荐的启动IDLE的方式,跨Windows、Linux、Mac都能用,不用手动找IDLE的安装路径。-r script_path:告诉IDLE启动后直接运行指定的脚本,并且会在独立的窗口打开它。subprocess.Popen:异步启动新进程,所以循环会快速把8个IDLE窗口都开起来,不用等某个脚本运行完再开下一个。
效果说明:
运行这个启动脚本后,你原来的IDLE窗口会保留(用来输出可能的警告信息),另外8个独立的IDLE窗口会分别打开并运行1~8号文件夹里的main.py,刚好满足你总共9个窗口的需求。而且每个窗口的输出都是独立存储的,就算某个窗口意外崩溃,其他窗口的输出也不会丢失,完美解决你之前的痛点。
内容的提问来源于stack exchange,提问作者tgmjack
相关产品推荐
相关产品推荐

