Причем тут это? Вы ж вызывали уже get_clipboard тут.
А в той строке, из-за которой эта ошибка
в оригинале ж и было как я говорил
Причем тут это? Вы ж вызывали уже get_clipboard тут.
А в той строке, из-за которой эта ошибка
в оригинале ж и было как я говорил
Самой бы знать причём тут
word = get_clipboard()
Но для чего-то он нужен…
я пробовала искать в интернете ответы на свой вопросы/
Узнать откуда происходит ошибка
Traceback (most recent call last):
File "C:\Users\User\PycharmProjects\spellchecer\spellchecer.py", line 32, in <module>
params = {'text': get_clipboard(), 'lang': LANG_TRANS[get_layout()]}
KeyError: ''
Почему-то ему не нравиться это строка…
Я не про это, я просто не понял почему вдруг возник вопрос
Для этого нужно импотирвать модуль clipboard?
Похоже get_layout
вернул пустую строку.
У вас какая ОС? setxkbmap
, xsel
и т.д. это Линуксовые утилиты.
Если нужно из буфера обмена данные брать, то можно эту библиотеку взять pyperclip · PyPI
Ну а вместо LANG_TRANS[get_layout()]
можно пока просто написать 'en'
или 'ru'
.
Вопрос был отправлен в пустоту. В интернете посмотрела и подумала что нужно модуль скачивать. После поняла что это разное и к коду они не имеют никакого значения.
У вас какая ОС?
setxkbmap
,xsel
и т.д. это Линуксовые утилиты.
Вот в чём дело! У меня Windows 10.
А какие нужны утилиты для моей OC
Для буфера обмена лучше взять крассплатформенную библиотеку
Для определения языка по текущей раскладке клавиатуры — хз, я б не делал так сложно, просто ввести как-нибудь (input()
, …) 'en'
или 'ru'
или пока просто в коде написать одно из них. Вам же все равно в итоге наверно надо какое-то другое поведение программы, а не так как автор этой программы хотел.
Я попробую, спасибо за помощь))
Здравствуйте, я тут попробовала и вроде как все получается, хотелось бы чтобы вы проверили.
def get_layout():
""" Get current keyboard layout """
pipe = Popen(input(),'ru')
layout = pipe.communicate()[0].strip().decode("utf-8")
return str(layout)
вышло вот так. Правильно ли я вас поняла?
Дальше я изменила данный текст, не уверена что правильно
def set_clipboard(text):
""" Set system clipboard to text """
pyperclip.copy('')
print(pyperclip.paste()(bytes(text, 'utf-8')))
И по каким-то причинам от данной строки
def get_clipboard():
""" Get text from system clipboard """
return os.popen('xlex').read()
выходит такая ошибка. Можете пожалуйста подсказать что я делаю не так?
Так по поводу xsel было же, выше:
P. S.
И ‘xlex’ не ‘xsel’
Что-то странное.
Я имел в виду например
print('Enter language (en or ru):')
lang = input()
params = {'text': get_clipboard(), 'lang': lang}
или просто
lang = 'ru'
в смысле?
xsel(1): change X selection - Linux man page
https://ostechnix.com/access-clipboard-contents-using-xclip-and-xsel-in-linux/
В смысле вот:
Раз есть pyperclip
, то
return pyperclip.paste()
Спасибо!
А как понять что означает данная ошибка?
"C:\Users\User\PycharmProjects\spellchecer\ok.png" �� ���� ����७��� ��� ���譥�
��������, �ᯮ��塞�� �ணࠬ��� ��� ������ 䠩���.
Что-то подобное не раз выскакивает, не понятно что это значит. Вы когда-нибудь с нечто подобным сталкивались?
Использовать линукс/макос или английскую винду ))
В cmd винды с кодировками разные сложности. Возможно поможет запуск без PyCharm напрямую из cmd, что-то типа python myprogram.py
.
Выше
скорее всего написано, что программа xsel не найдена. Похоже тут то же самое, только вместо имени программы почему-то передан путь картинки.
А как это сделать? Может есть видео где это показывают? И что такое
python myprogram.py
.? оно наверное как-то помогает выполнить программу?
Наверно для начала надо освоить основы cmd
Это вызов программы python
с параметром myprogram.py
(имя файла вашей программы), что должно выполнить питоновскую программу.
Но в зависимости от способа установки питона и библиотек возможно надо запускать как-нибудь по-другому, например, сначала активировать venv/pipenv/poetry/…
Думаю во многих курсах по основам питона в начале показывают как запускать из cmd.
Как вариант еще может поможет Пример создания GUI приложения на Python. PySide2, Poetry, PyCharm
А как можно создать простую программу которая будет проверять орфографию на Python?
Так а сейчас какая проблема с этой? С pyperclip
и без определения языка по раскладке клавиатуры по идее должно работать.
Вот честно, моих мозгов не достаточно чтобы понять как все работает. Я всего лишь хотела создать простую программу с интерфейсом и проверкой орфографий…
Ну простая программа это и есть то, что тут.
Без всякой фигни про буфер обмена и раскладку клавиатуры (просто консольный ввод и вывод):
import requests
def check_text(text, lang):
params = {'text': text, 'lang': lang}
r = requests.get('https://speller.yandex.net/services/spellservice.json/checkText', params = params)
if r.status_code != 200:
raise Exception('HTTP error. {} {}'.format(r.status_code, r.text))
if len(r.json()) == 0:
return {}
return {it['word']: it['s'] for it in r.json()}
if __name__ == '__main__':
print('Enter text:')
text = input()
print('Enter language (en, ru):')
lang = input()
result = check_text(text, lang)
if not result:
print('OK')
else:
print('Mistakes:')
for (word, suggestions) in result.items():
print('{}. Suggestions: {}'.format(word, ', '.join(suggestions)))
Для графического интерфейса надо изучать Tkinter или Qt (PySide2 или PyQt).