【发布时间】:2025-11-21 09:55:02
【问题描述】:
在 Python 应用程序中,我想通过 InteractiveConsole 类打开 Python REPL。但是之前我跳到交互式 Python 提示符(通过interact 方法)我想执行一些作为字符串给出的命令。这是一个最小的例子:
pre_commands = """for i in range(3):
print(i*i)
for i in range(3):
print(i*17)
"""
console = code.InteractiveConsole()
for l in pre_commands.splitlines():
console.push(l)
console.interact(banner="", exitmsg="")
这总是在pre_commands 的第 3 行出现 SyntaxError: invalid syntax 错误。看起来 push 只理解 一个 完整的命令(如
for i in range(3):
print(i*i)
而不是另一个命令,尽管InteractiveConsole.push 具有等待命令完成的机制。
如何使用字符串pre_commands 中的任意行复杂和简单的命令来完成这项工作?
【问题讨论】:
-
在循环之间添加换行符。
标签: python compilation interpreter interactive