Home > Mobile >  Getting skipped out of the loop without letting me type
Getting skipped out of the loop without letting me type

Time:09-26

So I made a very simple Auto-typer and want to be able to run it again or quit it. All works perfectly fine but at the end the "ending = input()" doesnt let me type it just exits out of the programm. Any reason why?

import pyautogui
import time
import os


def clearConsole():
    command = 'clear'
    if os.name in ('nt', 'dos'):  # If Machine is running on Windows, use cls
        command = 'cls'
    os.system(command)

break_loop = 1

while break_loop <= 1:
    secs_inbetween_actions = float(input("""
Seconds between actions(should be float but int is also ok): """))
    no_of_lines = int(input("""
How many Lines do you want to write?(Only int): """))
    time_between_action = int(input("""
How long should the time between enter and writing be?: """))
    lines = ""
    print("""
Write your Text under this message (You have """   str(no_of_lines)   """ line(s) to wite)
""")
    for i in range(no_of_lines):
        lines  = input()   "\n"

    print("-------------------------------------")

    while time_between_action > 0:
        time_between_action = time_between_action - 1
        print('Time Left until writing - ==> '   str(time_between_action))
        time.sleep(1)

    print("-------------------------------------")
    pyautogui.typewrite(lines, interval=secs_inbetween_actions)

    ending = input("If you want to use this aplication once again type 'y'   'enter key' ,if not press the 'enter key': ")

    if ending == "y":
        break_loop = 1
        clearConsole()
    else:
        break_loop  = 1

CodePudding user response:

This is a rather fun little problem. It occurs, as @Barmar notes, because pyautogui.typewrite() is writing to the console for you. I incorrectly thought that it was not happening when there was no delay between actions, which was a far more puzzling little problem.

In this case the solution is easy: add after your typewrite():

if lines:
    input()

To absorb what has just been typed for you.

  • Related