如何在Python 3 curses的.getstr()输入中使用.format()?

时间:2018-04-27 15:54:30

标签: python string-formatting python-3.5 curses

我试图在Python 3.5中学习curses库的一些非常基本的用法。

我遇到以下问题:检索字符串" foo"使用.getstr(),如果我使用字符串方法.format(),则打印的内容是带有前缀b和撇号的字符串:b'foo'而不仅仅是foo。 .getstr是否返回与常见字符串不同的东西?

这里发生了什么?如果只打印变量,我该怎么做?

这里有几行代码来说明问题:

import curses


def main(scr):
    scr.clear()
    curses.echo()
    scr.addstr(0, 0, "Write...")
    a = scr.getstr(1, 0)
    scr.addstr(
        2, 0, "You wrote...\nWith string.format:"
        "\n{}\nCalling directly the variable:\n".format(a))
    scr.addstr(6, 0, a)
    scr.addstr(8, 0, "Press Return to quit")
    scr.getkey()

curses.wrapper(main)

谢谢

1 个答案:

答案 0 :(得分:0)

From getstr docs

  

使用原始行编辑功能从用户读取一个bytes对象。

因此,此API返回一个bytes对象,该对象代表原始数据。您可以使用a.decode()将其转换为文本(默认情况下它将采用UTF-8编码)。

文献: