вмешательство pynput keyboard.type () - PullRequest
1 голос
/ 08 марта 2019

поэтому у меня возникли проблемы с моим кодом, когда он распознает keyboard.type() как тип вместо строки, у меня есть все необходимые импорты. как я могу это исправить?

with open("words.txt") as fp:  
        line = fp.readline()
        cnt = 1
        while line:
                print(line)
                line = fp.readline()

                cnt += 1
                exploit(line)

def exploit(keyboard):
    time.sleep(2)
    keyboard.type(line)

ошибка:

File "C:\Users\User\Desktop\ref.py", line 63, in start
    exploit(line)
  File "C:\Users\User\Desktop\ref.py", line 46, in exploit
    keyboard.type("hello")
AttributeError: 'str' object has no attribute 'type'

клавиатура по модулю (https://pypi.org/project/pynput/) импортируется

1 Ответ

1 голос
/ 08 марта 2019

Я предполагаю, что у вас есть строка import keyboard, которую вы нам не показываете.(В следующий раз предоставьте полный MCVE).

Проблема в этой строке:

def exploit(keyboard):

Модуль keyboard не будет доступен в этой функции, так как его имя былоперезаписывается параметром keyboard, который вы здесь определили.Например, если вы вызвали exploit("Hello"), этот код попытается выполнить "Hello".type(line).Но в строке нет метода с именем type.Вы, вероятно, хотели использовать вместо этого имя line.

def exploit(line):
    time.sleep(2)
    keyboard.type(line)

У вас может сложиться впечатление, что функция должна объявить, какие модули она использует в своей сигнатуре.Это не вариант.Модули, импортированные вверху вашего файла, будут доступны везде в этом файле, и вам не нужно делать ничего особенного.

...