总而言之,问题在于我不希望键盘记录程序每次在代码中都打印一行新内容。
我尝试使用其他用户键盘记录程序的多种方法,例如: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()
我希望输出在同一行上打印,但是,它对此没有任何作用。
答案 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}')