Python 如何访问 X11 剪贴板?
我希望我的 Python 脚本能够通过 x11 复制并粘贴到剪贴板(以便它可以在 Linux 上运行)。谁能给我指出我可以查看的具体资源,或者我必须掌握的概念?
这可以通过 http://python-xlib.sourceforge.net 处的 Python X 库来实现吗?
I want my Python script to be able to copy and paste to/from the clipboard via x11 (so that it will work on Linux). Can anyone point me to specific resources I can look at, or the concepts I would have to master?
Is this possible to do with the Python X library at http://python-xlib.sourceforge.net ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
Cameron Laird 的回答中提到的基于 Tkinter 的解决方案:
将“CLIPBOARD”替换为“PRIMARY”以改为获取
PRIMARY
选择。另请参阅此答案。
python-xlib 解决方案,基于 PrintSelection() 和 python-xlib/examples/get_selection.py
Tkinter-based solution mentioned in Cameron Laird's answer:
Replace "CLIPBOARD" with "PRIMARY" to get
PRIMARY
selection instead.Also see this answer.
python-xlib solution, based on PrintSelection() and python-xlib/examples/get_selection.py
我更喜欢基于 Tkinter 的解决方案,而不是需要 pygtk 的解决方案,仅仅是因为后者可能面临安装挑战。鉴于此,我对阿尔文·史密斯的建议是阅读:剪切&在 Tkinter 小部件之间粘贴文本
您可以在 Tkinter 事件处理程序中使用此代码(来自 python-list 通过 Tkinter 剪贴板访问):
I favor a Tkinter-based solution over one which requires pygtk, simply because of the potential the latter has for installation challenges. Given this, my recommendation to Alvin Smith is to read: Cut & Paste Text Between Tkinter Widgets
You can use this code in a Tkinter event handler (from python-list via Tkinter Clipboard access):
您可以使用 pygtk 来完成此操作。一个干净的解决方案,但可能有点矫枉过正,具体取决于您的应用程序。
另一种方法可以获取一些 google-hits 是对 < a href="http://www.kfish.org/software/xsel/xsel.1x.html" rel="nofollow">xsel。
You can do this with pygtk. A clean solution but might be a bit overkill depending on your application.
Another method that gets some google-hits is to make a system call to xsel.
使用
clipboard
模块首先,安装
clipboard
使用pip3
的 模块:使用这个跨平台模块(Linux、Mac、Windows)非常简单:
Using the
clipboard
moduleFirst, install the
clipboard
module usingpip3
:Using this cross-platform module (Linux, Mac, Windows) is pretty straightforward: