Python ncurses addstr期望字节或str,得到int

时间:2018-04-24 18:37:27

标签: python python-curses

我正在尝试使用curses在Python中创建ASCII级别编辑器,但我遇到了问题。使用以下代码时,我得到Traceback (most recent call last): File "lvleditor_curses.py", line 36, in <module> editor.newLine() File "lvleditor_curses.py", line 31, in newLine self.stdscr.addstr(self.level[0][0]) TypeError: expect bytes or str, got int

import os, curses

class Editor:

  def __init__(self):
    self.stdscr = curses.initscr()
    curses.noecho()
    curses.cbreak()
    self.stdscr.keypad(True)

    self.stdscr.addstr("test")
    self.stdscr.refresh()


    self.level = []

  def newLine(self):
    line = self.stdscr.getstr()

    self.level += [list(line)]
    self.stdscr.addstr(self.level[0][0])
    self.stdscr.refresh()


editor = Editor()
editor.newLine()

2 个答案:

答案 0 :(得分:0)

显然,self.level[0][0]类型错误(int)。使用str(self.level[0][0])将其转换为字符串。

答案 1 :(得分:0)

我现在刚遇到这个问题。 getstr函数默认返回一个字节数组。因此,您必须将字节数组转换为字符串。添加:

line = line.decode()

下:

line = self.stdscr.getstr()