I have taken a piece of code from https://pynput.readthedocs.io/en/latest/keyboard.html and modified it so that it stores keystrokes into a text file. However, I get the error message in the output:
ImportError: cannot import name 'keyboard' from 'pynput'
Googling it brings up...
from pynput.keyboard import Key, Listener
...but even this import is not compatible with my code. I have downloaded pynput for python3. The original code from the above link:
from pynput import keyboard
def on_press(key):
try:
print('alphanumeric key {0} pressed'.format(key.char))
except AttributeError:
print('special key {0} pressed'.format(key))
def on_release(key):
print('{0} released'.format(key))
if key == keyboard.Key.esc:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
The modified code:
import pynput
from pynput import keyboard
def on_press(key):
with open("keylogger.txt", "a") as f:
try:
f.print('alphanumeric key {0} pressed'.format(key.char))
except AttributeError:
f.print('special key {0} pressed'.format(key))
def on_release(key):
with open("keylogger.txt", "a") as f:
f.print('{0} released'.format(key))
if key == keyboard.Key.esc:
# Stop listener
return False
# Collect events until released
with keyboard.Listener(on_press=on_press,on_release=on_release) as listener:
listener.join()
Am I missing something that would allow the program to properly store the keystrokes into the text file?