gpt4 book ai didi

python3打印到字符串

转载 作者:太空宇宙 更新时间:2023-11-03 13:12:30 24 4
gpt4 key购买 nike

使用 Python 3,我有一个正在移植到 GUI 的控制台应用程序。该代码有一堆打印语句,如下所示:

print(f1(), f2(), f3(), sep=getsep(), end=getend())

我想将这些调用转换成如下内容:

GuiPrintLine(f1(), f2(), f3(), sep=getsep(), end=getend())

每一行最终都使用一些(未定义的)GUI 框架呈现。

如果我可以将要打印的参数转换为打印通常会产生的字符串而没有实际打印到 sysout 的副作用,那么这很容易做到。换句话说,我需要这样的函数:

s = print_to_string(*args, **kwargs)

如何将 print(...) 的一组参数格式化为单个字符串,从而产生与 print() 产生的输出相同的输出?

我意识到我可以通过将所有 args 与 sep 和 ends 连接起来来模拟打印,但如果有的话,我更愿意使用内置解决方案。

使用打印和重定向 sysout 没有吸引力,因为它需要修改应用程序的全局状态,并且 sysout 可能同时用于其他诊断。

看起来这在 Python 中应该是微不足道的,所以也许我只是遗漏了一些明显的东西。

感谢您的帮助!

最佳答案

通过字符串 io 找到答案。有了这个,我不必模仿 Print 对 sep/end 的处理,甚至不必检查是否存在。

import io

def print_to_string(*args, **kwargs):
output = io.StringIO()
print(*args, file=output, **kwargs)
contents = output.getvalue()
output.close()
return contents

关于python3打印到字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39823303/

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