代码返回command not found,但我不确定将命令放在何处

2024-04-24 04:08:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图捕捉我的击键并将它们返回给我自己。当我运行代码时,我希望在代码按那个顺序运行时按哪个键都能得到我想要的东西。我没有问题,一切都会好起来的。但是在代码运行之后,它返回'-Bash:(myinput):command not found

from __future__ import print_function
import keyboard

keys = []

def keys_in():
    try:
        while True:
                recorded = keyboard.read_key(suppress=True)
                keys.append(recorded)
                if recorded == 'enter':
                        print(sorted(set(keys),key=keys.index))
                        break

                keys.append(recorded)


    except KeyboardInterrupt:
        print('done')
        quit()
 keys_in()

当我输入1234时,我得到:['1','2','3','4','enter']

1234美元 -bash:1234:未找到命令 我不知道为什么它要运行我的输入后记。救命啊?你知道吗


Tags: key代码inimportbashtrue顺序keys
2条回答
import keyboard     


s = set()    

def keys_in():
    recorded = keyboard.read_key(suppress=True)
        while recorded != "enter":
            s.add(recorded)
            print(list(s))
keys_in()

试试这个。集合已排序。你不需要添加。这样行吗?你知道吗

我对keyboard模块不太熟悉,但是看起来,虽然它确实将输入传递给python程序,但它的方式是在python程序退出时shell获得输入,就好像它是在命令行上输入的一样。以下是两个选项(不需要安装键盘模块):

使用系统标准读取你知道吗

from __future__ import print_function

import sys

keys = []

def keys_in():
    try:
        while True:
                recorded = sys.stdin.read(1)

                keys.append(recorded)
                if recorded == '\n':
                        print(sorted(set(keys),key=keys.index))
                        break

                keys.append(recorded)


    except KeyboardInterrupt:
        print('done')
        quit()
keys_in()

使用“输入”

from __future__ import print_function

import sys

keys = []

def keys_in():
    try:
        input_string = input('')
        for recorded in input_string:
                keys.append(recorded)

    except KeyboardInterrupt:
        print('done')
        quit()

    print(sorted(set(keys),key=keys.index))

keys_in()

相关问题 更多 >