python3打印到字符串

2024-09-29 23:31:08 发布

您现在位置:Python中文网/ 问答频道 /正文

使用python3,我有一个控制台应用程序要移植到GUI上。代码有一堆打印语句,如下所示:

print(' ', 'p', ' ', sep='', end='')

(实际上,位置参数实际上是从函数返回的,可能多于或少于3个,如下所示:

print(f1(), f2(), f3(), sep='', end='')

我想把这些电话转换成:

GuiPrintLine(' ', 'p', ' ', sep='', end='')

其中每一行最终都是使用GUI框架呈现的。在

如果可以将参数转换为字符串,这很容易实现。我想将参数列表格式化为一个字符串,打印通常会输出如下内容:

def GuiPrintLine(*args, **kwargs):
    s = text.format(*args, **kwargs)
    # ... then display the string on the gui ...

但是,这需要一个格式字符串(文本)。有没有一种简单的方法可以自动生成与print函数相同的输出?我意识到我可以通过将所有参数与sep和ends结合来模拟打印,但是如果有一个内置的解决方案,我更愿意使用它。在

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

在Python中,这似乎是微不足道的,所以可能我只是遗漏了一些显而易见的东西。在

谢谢你的帮助!在


Tags: the函数字符串代码应用程序参数argsgui
1条回答
网友
1楼 · 发布于 2024-09-29 23:31:08

通过字符串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

相关问题 更多 >

    热门问题