自动化输入输出中的键盘按钮 NONE

Automating keyboard buttons inside of input outputs NONE

希望大家今天过得愉快。

我正在练习使用 pynput。我进了一个街区。

当我告诉我的键盘输入一个输入时,结果是我告诉它的任何内容加上一个 None。

输入:

from pynput.keyboard import Key, Controller
import time

keyboard = Controller()

keyboard.press(Key.alt)
keyboard.press('4')
keyboard.release(Key.alt)
keyboard.release('4')

path = "Test Test 123"

def type_enter():
    keyboard.type(path)
    time.sleep(1)
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)

x = input(type_enter())

输出:

Test Test 123
None

有人知道发生了什么事吗?

非常感谢您:)

input()的可选参数主要用于提出问题,不用于接收答案。如 here 所述,“如果存在提示参数,则将其写入标准输出而没有尾随换行符。然后该函数从输入中读取一行,将其转换为字符串(去除尾随换行符),并且 return就是这样。"

这里发生的事情是 input()type_enter() 的输出解释为要在向用户提出问题的过程中显示的字符串。 type_enter() 没有 return 语句,因此它默认为 returns None,然后将其作为 input() 的字符串参数。

编辑:

您在评论中提到的问题似乎是在等待输入行完成执行后再继续输入行。这可以通过将输入行放在它自己的线程中来解决,因此它与输入行并行运行。

试试这个:

from pynput.keyboard import Key, Controller
import time
import threading

keyboard = Controller()

def type_enter():
    time.sleep(1)
    keyboard.type("Test Test 123")
    time.sleep(1)
    keyboard.press(Key.enter)
    keyboard.release(Key.enter)

thread = threading.Thread(target=type_enter)
thread.start()
x = input()