You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Python代码在Python解释器中直接执行指定命令

问题原因分析

你原代码无法实现需求有两个核心原因:

  1. os.system每次调用都会启动独立的系统子进程,两次调用的进程完全隔离。第一次启动的Python解释器进程会一直阻塞等待用户输入,直到手动退出后才会执行第二条os.system命令,且第二条命令运行在全新的系统shell进程中,和之前启动的Python解释器没有任何关联。
  2. 第二条命令的内容Hello World!本身不是合法的Python可执行语句,就算传入解释器也会触发语法错误,打印输出需要使用print()函数。
可行实现方案

方案1:通过Python解释器-c参数直接传递代码(最简单)

Python解释器支持-c参数,可以直接执行后面跟随的字符串格式代码,执行完成后自动退出,适合执行短代码的场景:

import os
os.system("python3 -c \"print('Hello World!')\"")

方案2:使用subprocess模块实现同进程多指令交互(适合复杂场景)

如果需要在同一个Python解释器进程中执行多条指令,可以用subprocess.Popen绑定子进程的标准输入输出流,批量传入代码执行:

import subprocess

# 启动Python解释器子进程,绑定输入输出流,指定字符模式传输内容
proc = subprocess.Popen(
    "python3",
    stdin=subprocess.PIPE,
    stdout=subprocess.PIPE,
    stderr=subprocess.PIPE,
    text=True
)
# 向解释器传入要执行的代码,多条代码用换行分隔即可
output, error = proc.communicate(input="print('Hello World!')\n")
# 输出执行结果
print("解释器输出内容:", output.strip())
if error:
    print("执行报错:", error.strip())

方案3:执行本地Python脚本文件

如果要运行的代码量较大,可以先保存为.py后缀的本地文件,直接将文件路径作为参数传给Python解释器执行:

import os
# 假设本地test.py文件的内容为 print('Hello World!')
os.system("python3 test.py")

内容的提问来源于stack exchange,提问作者hello_world2022

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 04:39:00