Как использовать .format () при вводе из .getstr () в Python 3 curses? - PullRequest
0 голосов
/ 27 апреля 2018

Я пытаюсь научиться основам использования библиотеки curses в Python 3.5.

Я сталкиваюсь со следующей проблемой: после получения строки "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 голосов
/ 27 апреля 2018

Из getstr документов :

Чтение байтового объекта от пользователя с возможностью редактирования примитивной строки.

Таким образом, этот API возвращает bytes объект, который представляет собой, ну, сырые данные. Вы можете преобразовать его в текст, используя a.decode() (по умолчанию будет использоваться кодировка UTF-8).

Литература:

...