Тема: Проблеми при запуску команди по скороченню python
Доброго всім часу народ! Вирішив написати скріпт на пітоні який при запусканні по шоткату буде робити транскрипцію, наприклад: ghbdsn cdsn = привіт світ і типу того. Я його зробив, та в самому проекті він працює, і те що виділене копіює, і перероблює та вставляє. Проте, варто мені запустити той самий код проте скороченням, нічого не закидається до буферу обміну.
тобто до буферу те що виділено копіюється, проте нічого не закидається
import PySimpleGUI as gui
import json
from time import sleep as slp
from pyautogui import hotkey
from pyperclip import paste, copy
list_lang = ["eng", "ukr", "dvorak"]
layout = [
[gui.Combo(values=(list_lang), size=(10,1), default_value=(list_lang[0])),
gui.Combo(values=(list_lang), size=(10,1), default_value=(list_lang[1]))],
[gui.Button("Transcript")]
]
hotkey('ctrl', 'c')
window = gui.Window("transcript", layout)
while True:
event, lang = window.read()
if event in (None, "Transcript"):
print(lang[0], lang[1])
break
window.close()
with open("languages.json", "r") as f:
data = f.read()
_lang = json.loads(data)
fr = _lang[lang[0]]
to = _lang[lang[1]]
slp(0.5)
inp = paste()
out = ""
for i in range(0, len(inp)):
ch = (inp[i])
if ch in fr:
out = out + to[fr.index(ch)]
else:
out = out + inp[i]
copy(out)
hotkey('ctrl', 'v')
Та ось JSON звідки витягується сама розкладка:
{
"eng" : "`1234567890-=qwertyuiop[]\\asdfghjkl;'zxcvbnm,./~!@#$%^&*()_+QWERTYUIOP{}|ASDFGHJKL:\"ZXCVBNM<>?",
"ukr" : "'1234567890-=йцукенгшщзхїґфівапролджєячсмитьбю.ʼ!\"№;%:?*()_+ЙЦУКЕНГШЩЗХЇҐФІВАПРОЛДЖЄЯЧСМИТЬБЮ,",
"dvorak" : "$&[{}(=*)+]!#;,.pyfgcrl/@aoeuidhtns-\\'qjkxbmwvz~%7531902468`:<>PYFGCRL?^AOEUIDHTNS_|AOEUIDHTNS_|"
}
Якщо є хтось хто може допомогти з цим, прошу, допоможіть. Додатково можу сказати те, що коли код був простіше, а саме:
# required commands in terminal
#
# sudo apt-get install xclip
# pip install pyautogui
# pip install pyperclip
#
# ------------------------------
from pyautogui import hotkey
from pyperclip import paste, copy
def get_char(ch):
return {
'q': 'й', 'Q': 'Й',
'w': 'ц', 'W': 'Ц',
'e': 'у', 'E': 'У',
'r': 'к', 'R': 'К',
't': 'е', 'T': 'Е',
'y': 'н', 'Y': 'Н',
'u': 'г', 'U': 'Г',
'i': 'ш', 'I': 'Ш',
'o': 'щ', 'O': 'Щ',
'p': 'з', 'P': 'З',
'[': 'х', '{': 'Х',
']': 'ї', '}': 'Ї',
'\\': 'ґ', '|': 'Ґ',
'a': 'ф', 'A': 'Ф',
's': 'і', 'S': 'І',
'd': 'в', 'D': 'В',
'f': 'а', 'F': 'А',
'g': 'п', 'G': 'П',
'h': 'р', 'H': 'Р',
'j': 'о', 'J': 'О',
'k': 'л', 'K': 'Л',
'l': 'д', 'L': 'Д',
';': 'ж', ':': 'Ж',
"'": 'є', '"': 'Є',
'z': 'я', 'Z': 'Я',
'x': 'ч', 'X': 'Ч',
'c': 'с', 'C': 'С',
'v': 'м', 'V': 'М',
'b': 'и', 'B': 'И',
'n': 'т', 'N': 'Т',
'm': 'ь', 'M': 'Ь',
',': 'б', '<': 'Б',
'.': 'ю', '>': 'Ю',
'/': '.', '?': ','
}.get(ch, ch)
hotkey('ctrl', 'c')
inp = paste()
out = ''
for i in range(0, len(inp)):
out = out + get_char(inp[i])
copy(out)
hotkey('ctrl', 'v')
все працювало. Навіть по скороченню.