Как получить выделенный текст с помощью xsel - Python - PullRequest
3 голосов
/ 07 сентября 2011

Мне нужен скрипт на python, который получит выделенный текст в другом приложении с помощью xsel, а затем сохранит его в переменной.

Спасибо

Ответы [ 2 ]

4 голосов
/ 07 сентября 2011

После того, как у вас есть текст, который вы хотите выделить, запустите:

import os

var = os.popen('xsel').read()
print var
0 голосов
/ 13 декабря 2014

Я добавляю дополнительный ответ, основываясь на том факте, что os.popen теперь считается устаревшим. Следующий код взят из исходного ответа (кроме имен переменных, измененных для удобства):

out = os.popen("xsel").read()

Теперь мы переписываем его, используя subprocess.Popen вместо os.popen:

process = subprocess.Popen("xsel", stdout=subprocess.PIPE, universal_newlines=True)
out = process.stdout.read()

Это можно упростить следующим образом:

process = subprocess.Popen("xsel", stdout=subprocess.PIPE, universal_newlines=True)
out, err = process.communicate()

И лучшее в конце:

out = subprocess.check_output("xsel", universal_newlines=True)

Опция universal_newlines, хотя название этого не предполагает, превращает ввод и вывод в текстовые строки вместо строк байтов, которые используются по умолчанию для subprocess.Popen.

...