Функция clipboard.get_selection() не может получить всю выбранную строку

Я установил ярлык, чтобы выделить фрагмент текста и открыть URL с выделением в конце.

Итак, это скрипт для AutoKey под Linux:

text = clipboard.get_selection()
system.exec_command("kde-open http://www.MY_URL.com/%s" % text)

проблема в том, что%s вставляет только первое слово.

Поэтому, если я выберу " мой текст - это ", то откроется URL: www.MY_URL.com/ my

2 ответа

Решение

Возможно, вам придется кодировать текст, чтобы использовать его в URL:

from urllib.parse import quote # in python2 that would be: from urllib import quote

text = quote(clipboard.get_selection())
system.exec_command("kde-open http://www.MY_URL.com/%s" % text)

system.exec_command("kde-open http://www.MY_URL.com/%s" % text) проблема в том, что %s вставляет только первое слово. Итак, если я выберу «мой текст», откроется URL-адрес: www.MY_URL.com/my

Я думаю, проблема в том, что ваш скрипт не сохраняет всю строку для поиска поURL-адресу.

Другими словами, команда, которую вы выполняете,

      system.exec_command("kde-open http://www.MY_URL.com/my text is this") 

Если работает на консоли

      kde-open http://www.MY_URL.com/my text is this

не делает то, что вы хотите, Autokey не сделает это лучше.

Если вы используете Autokey с Python3, вы можете сделать

      system.exec_command(f"kde-open 'http://www.MY_URL.com/{text}'")
Другие вопросы по тегам