Keyboard TypeError:write()参数必须是str,而不是list

Keyboard TypeError:write()参数必须是str,而不是list,keyboard,keylogger,Keyboard,Keylogger,def文件输入(已录制): now_time = datetime.datetime.now() w = open("LOG.txt", 'a') w.write(recorded) w.write("\n") w.write(now_time) w.write("--------------------------------------") w .close() 如果name==“main”: 我正试图用python编写一个键盘记录程序,我遇到了这样的类型错误,我该如何解决这个问题 我只是

def文件输入(已录制):

now_time = datetime.datetime.now()
w = open("LOG.txt", 'a')
w.write(recorded)
w.write("\n")
w.write(now_time)
w.write("--------------------------------------")
w .close()
如果name==“main”:

我正试图用python编写一个键盘记录程序,我遇到了这样的类型错误,我该如何解决这个问题


我只是将记录的变量放入write()中,它会产生类型错误,记录的变量类型是list。因此,我尝试使用join func,但它不起作用

您尝试使用
w.write()
写入文件,但它只接受字符串作为参数。
now\u time
是“datetime”类型,而不是字符串。如果不需要设置日期格式,您可以改为:

w.write(str(nowtime))
同样的事情

w.write(recorded)
recorded
是一个事件列表,您需要使用它来构造一个字符串,然后再尝试将该字符串写入文件。例如:

recorded = keyboard.record(until='enter')
typedstr = " ".join(keyboard.get_typed_strings(recorded))
然后,在
file\u input()
函数中,您可以:

w.write(typedstr)

通过更改为
w.write(str(recorded))
解决了我的问题。

在某些情况下,当将字符串写入文本文件时仍会出现编码问题,\u content函数可能会很有用

w.write(str(recorded._content))
w.write(str(recorded._content))