如何使用Python启动独立控制台窗口并在其中运行指定脚本
解决方案
原代码问题说明
你原先的写法错误将待执行的代码字符串直接传递给python命令,而python命令后默认需要传入脚本文件路径而非直接的代码内容,因此无法正常运行。
方案1:目标脚本已单独保存为.py文件
如果要运行的代码已经是独立的脚本文件,直接指定路径调用即可:
import os # 替换为你的目标脚本实际路径,支持相对/绝对路径 target_script = "demo.py" # 启动独立控制台窗口运行脚本 # 去掉/wait参数则原脚本不需要等新窗口关闭就会继续执行 # /k表示运行完脚本后保留窗口,换成/c则运行完自动关闭窗口 os.system(f'start /wait cmd /k python "{target_script}"')
方案2:代码内嵌在当前脚本中,不想额外存独立文件
可以先把要执行的代码写入临时py文件,再调用运行:
import os import tempfile # 你要在新窗口执行的代码 run_code = """ print("这里是新控制台窗口的输出内容") res = 3 * 5 print(f"计算结果:{res}") input("按任意键退出窗口") """ # 创建临时py文件 with tempfile.NamedTemporaryFile(mode='w', suffix='.py', delete=False, encoding='utf-8') as f: f.write(run_code) temp_file_path = f.name try: # 启动新窗口运行 os.system(f'start cmd /k python "{temp_file_path}"') finally: # 若需要自动清理临时文件,可以在这里加逻辑等待进程结束后删除文件 # 不要立刻删除,否则python还未读取文件内容就会被删除导致运行失败 pass
注意事项
- 若你的环境中Python命令为
python3,将代码中的python替换为python3即可 - 脚本路径包含空格时,必须用引号包裹路径,否则cmd会识别路径失败
- 不需要保留运行后的控制台窗口的话,把参数
/k换成/c即可
内容的提问来源于stack exchange,提问作者Rdimo
相关产品推荐
相关产品推荐

