有没有办法在每次输入内容时都无法在换行符上打印的按键记录文件('user_logs.txt')中?提前致谢

时间:2019-06-24 17:33:27

标签: python windows keylogger

总而言之,问题在于我不希望键盘记录程序每次在代码中都打印一行新内容。

我尝试使用其他用户键盘记录程序的多种方法,例如:str(key).replace("'", "")。但是,它不起作用。

from pynput.keyboard import Key, Listener
import logging
import datetime
import sys
import inspect




def lineno():
    return inspect.currentframe().f_back.f_lineno

now = datetime.datetime.now()

日志

log_dir = ""
logging.basicConfig(filename=(log_dir + "user_logs.txt"), level=logging.DEBUG, format='%(asctime)s: %(message)s:' )





def on_press(key):

    logging.info(str(key))

    #log info for computer screen

    print(lineno()),
    print(now),
    print(' INFO:'),
    print(key)


    str(key).replace("'", "")    


with Listener(on_press=on_press) as listener:
    listener.join()

我希望输出在同一行上打印,但是,它对此没有任何作用。

1 个答案:

答案 0 :(得分:0)

对于Python 3.x,print使用另一个参数end来替换print末尾的换行符。

print(lineno(), end='')
print(now, end='')
print(' INFO:', end='')
print(key)

或者,您可以使用字符串格式。

print(f'{lineno()}{now} INFO:{key}')