是否有一种方式,在keylogging文件('user_logs.txt')中,我不能在每次键入内容时打印新行?谢谢

2024-05-16 21:20:25 发布

您现在位置:Python中文网/ 问答频道 /正文

总之,问题是我不希望键盘记录器每次都在代码中打印一行新行

我尝试过使用其他用户键盘记录程序的多种方法,例如: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()

我希望输出打印在同一行上,但是,它没有这样做


Tags: keyimportlogdatetimeonloggingnowreplace
1条回答
网友
1楼 · 发布于 2024-05-16 21:20:25

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

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

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

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

相关问题 更多 >