我正在尝试使用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()
答案 0 :(得分:0)
显然,self.level[0][0]
类型错误(int
)。使用str(self.level[0][0])
将其转换为字符串。
答案 1 :(得分:0)
我现在刚遇到这个问题。 getstr
函数默认返回一个字节数组。因此,您必须将字节数组转换为字符串。添加:
line = line.decode()
下:
line = self.stdscr.getstr()