gpt4 book ai didi

python - 如何以字符串形式执行 python print 语句?

转载 作者:行者123 更新时间:2023-11-30 22:50:14 24 4
gpt4 key购买 nike

我正在编写一个Python脚本,其中包含一个列表,其中包含Python打印语句作为字符串。在我的函数中,我使用 for 循环来运行 exec 函数来运行这些语句。

这是我的功能:

g_list = ["print('Wow!')\n", "print('Great!')\n", "print('Epic!')\n"]

def run_statements():
for item in g_list:
exec(item)

当我运行run_statements()时函数,我得到以下输出:

Wow! 
Great!
Epic!

基本上,我想将输出保存为字符串,以便稍后将其保存到数据库中。

有人知道我该怎么做吗?

编辑:针对以下问题:python: get the print output in an exec statement他正在尝试获取输出,我的问题与我尝试以字符串形式获取输出的方式有所不同

最佳答案

如果您确实需要在字符串列表中使用 print 语句(而不是像另一个答案中所建议的那样具有不同名称的类似 print 的函数),您可以重新分配名称 print 到你自己的函数中,在小心地、小心地、小心地保存旧的 print 函数之后,这样你就可以小心地、小心地、小心地将名称 print 恢复到其正确的定义。像这样:

>>> g_list = ["print('Wow!')\n", "print('Great!')\n", "print('Epic!')\n"]
>>> old_print = print
>>> def print(s): # redefining the built-in print function! terrible idea
... global catstr
... catstr += s
...
>>> catstr = ""
>>> for s in g_list: exec(s)
...
>>> catstr
'Wow!Great!Epic!'
>>> print = old_print # Don't forget this step!

这是完全不道德的,我也没有建议你这么做。我只是说你可以做到。

为了强调这个计划的不可取性:exec 应该很少使用;有危险;应该很少将内置函数的名称重新分配给不同的函数;有危险。在同一代码中执行这两项操作确实可能会毁掉您的一天,尤其是在维护程序员“稍微”编辑您的代码而没有意识到潜在影响之后。

关于python - 如何以字符串形式执行 python print 语句?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39460882/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com