Форум сайта python.su
Можно ли объединить несколько последовательных команд в одну? Если до, то как потом вызвать эту команду скажем n раз?
Офлайн
Что вы имеете в виду под понятием “объединять”? Что мешает просто создать функцию?
Офлайн
Так это и есть функция. Пример:
def spam():
eggs = commands.getoutput('ls')
return eggs
return - возвращает переменную
потом:
print spam() + ‘eggs’
foo = spam()
bar = int(spam()) #так не получится
и.т.д. - где надо
Офлайн
Допустим я хочу на клавиатуре нажать (программно) 20 раз по очереди “пробел”,“z”, “a”, “v”, “d” , или “n” раз , и мне надо вставить эти строки в разные части кода,
чтоб короче было как это сделать?
Офлайн
допустим такой код:
import win32api
win32api.keybd_event(ord('V'), 0, 0, 0) # нажали V
win32api.keybd_event(ord('V'), 0, win32con.KEYEVENTF_KEYUP, 0) # Отжали V
win32api.keybd_event(ord('S'), 0, 0, 0) # нажали S
win32api.keybd_event(ord('S'), 0, win32con.KEYEVENTF_KEYUP, 0) # Отжали S
Вопрос: Как объеденить несколько этих строк в одну команду, чтоб в ней была возможность повтора нажатий?
Офлайн
PythoNoob
Модуль для подобных целей - pyatspi
Код будет выглядеть в вашем случае примерно так:
import pyatspi
reg = pyatspi.Registry
press = lambda x: reg.generateKeyboardEvent(x, None, pyatspi.KEY_PRESSRELEASE)
...
press(32)
Отредактировано (Июнь 6, 2009 16:35:03)
Офлайн