在进入交互之前如何在InteractiveConsole中执行一些任意的Python代码

问题描述 投票:0回答:1

[在Python应用程序中,我想通过InteractiveConsole类打开Python REPL。但是之前我跳进了交互式Python提示符(通过InteractiveConsole方法),我想执行一些以字符串形式给出的命令。这里是一个最小的例子:

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="") 的第三行出现SyntaxError: invalid syntax错误。看起来像push仅了解one完整命令(如

pre_commands

而不是其他命令,尽管for i in range(3): print(i*i) 具有等待命令完成的机制。

如何使用字符串InteractiveConsole.push中的任意行的复杂和简单命令来完成此工作?

python compilation interpreter interactive
1个回答
2
投票

看起来像交互式,意味着在每个块之后都按Enter / Return键来执行它。

并且Enter / Return键也表示换行。如果我在每次打印后添加新行,如下所示,您的代码将起作用:

pre_commands

OR,向每行发送\ n,例如行console.push(l +'\ n')。

© www.soinside.com 2019 - 2024. All rights reserved.