我有成千上万的小型多行python3程序要运行,它们被生成为字符串。它们都有类似的结构,并以print
命令结束。下面是一些简单的例子
prog_1 = 'h=9\nh=h+6\nprint(h)'
prog_2 = 'h=8\nh-=2\nprint(h)'
prog_3 = 'c=7\nc=c+4\nprint(c)'
如果要从解释器运行它们,它们都应该是可执行的。我的意思是,当你打印它们的时候,它们看起来就像普通的小程序
>>> print(prog_1)
h=9
h=h+6
print(h)
>>> print(prog_2)
h=8
h-=2
print(h)
>>> print(prog_3)
c=7
c=c+4
print(c)
我想在我的程序中执行它们(生成它们),并将输出(即print
的输出)作为变量捕获,但我被困在了如何做?你知道吗
像这样的
import os
output = os.popen("python -c " + prog_1).read()
太好了,但我有这个错误?你知道吗
/bin/sh: 3: Syntax error: word unexpected (expecting ")")
我想问题是我不知道如何从命令行执行小程序?这行执行,但不打印??你知道吗
python -c "'h=9\nh=h+6\nprint(h)'"
非常感谢您的帮助:)
如果希望在单独的进程中执行它们,则可以使用^{} :
请注意,
encoding
支持需要python3.6,而subprocess.run
支持需要python3.5。你知道吗在python3.5中,需要将输入作为
bytes
传递,并且返回的输出也将是字节。你知道吗您可以使用
exec
:如果未绑定到命令行,则可以使用:
警告:
exec()
可能非常危险Why should exec() and eval() be avoided?相关问题 更多 >
编程相关推荐