Search code examples
pythonpynput

Repeating in python pynput


from pynput.keyboard import Key,Controller import time

keyboard = Controller()

time.sleep(60)

# 1
keyboard.press(Key.enter)
keyboard.release(Key.enter)

# 2
i = 0
while i < 4:
    keyboard.press(Key.tab)
    keyboard.release(Key.tab)
    i = i + 1;

# 3
i= 0
while i < 3:
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)
    i = i + 1;

# 4
i = 0
while i < 4:
    with keyboard.pressed(Key.shift):
        keyboard.press(Key.tab)
        keyboard.release(Key.tab)
        i = i + 1;

I want the above code to loop indefinitely, but it does not work. What's wrong?

Could you give me some advice? About GUI and EXE filing


Solution

  • I think you want something like this you loop indefinitely because True well... always evaluate to true so the loop will never break unless you explicitly tell it to.

    from pynput.keyboard import Key,Controller 
    import time
    
    keyboard = Controller()
    
    while True:
        keyboard.press(Key.enter)
        keyboard.release(Key.enter)
        for i in range(0, 4):
            keyboard.press(Key.tab)
            keyboard.release(Key.tab)
        for i in range(0, 3):
            keyboard.press(Key.enter)
            keyboard.release(Key.enter)
       ...
    
       time.sleep(60)
    

    It's also better practice to replace the while statements with for loops. That's what is typical practice when you intend to execute a block of code a determinate number of times i.e. 4 times as opposed to when you want to execute a block of code an indeterminate amount of time you use a while loop