2014-01-03 5 views
2

Я хочу получить доступ к тексту в буфер обмена из ipython.Доступ к буфере обмена выбора из ipython

Я получил это далеко (даже не уверен, что это лучший способ, просто найти, ковыряться в IPython магий источников):

import IPython 
from IPython.core.hooks import clipboard_get 
ip = IPython.get_ipython() 
my_string = clipboard_get(ip) 

И это своего рода работает на вещи я скопированной вручную, но Я хочу получить «другой» буфер обмена - тот, который вы получаете, когда вы используете средний щелчок мыши. Буфер выбора или что бы он ни называл.

Любые идеи?

+1

Я не думаю, что вы можете сделать это с 'ipython' волшебством. Глядя на документы, clipboard api - это просто оболочка, использующая обработчик буфера обмена 'tkinter', который (я не верю) поддерживает х буферов. – roippi

ответ

4

Вы можете получить «среднюю кнопку мыши» Выбор X Window (названную PRIMARY выбор) через Tkinter:

import Tkinter # Replace "Tkinter" with "tkinter" for Python 3.x. 
tk = Tkinter.Tk() 
tk.withdraw() 
print(tk.selection_get()) 

Другим решением является запуск xclip и получить свой выход. (Если вы не xclip установили его можно найти в репозиториях большинства дистрибутивов Linux.)

import subprocess 

print(subprocess.check_output(['xclip', '-o', '-selection', 'PRIMARY'])) 
+0

Да, я тоже думал об этом, может быть, это лучший способ. Думаю, нет необходимости изобретать колесо. – wim

Смежные вопросы