【问题标题】:python 3.6 windows: retrieving the clipboard CF_HTML formatpython 3.6 windows:检索剪贴板 CF_HTML 格式
【发布时间】:2017-05-30 08:57:26
【问题描述】:

我想复制一些富文本,修改其源代码(更改一些标签和文本,使用正则表达式和/或 beautifulsoup)并将其发送回剪贴板。我正在寻找最简单的方法。

我试过win32clipboard,但它doesn't support the CF_HTML format (windows clipboard contains many formats)。

所以我正在寻找一个可以帮助我获得这种格式的模块: 如果 CF_HTML 剪贴板格式包含 HTML,则将其存储在该变量中,执行一些操作,然后将其发回。 (可选:并在其他剪贴板格式上做其他事情)

这是我正在寻找的 Linux 等价物。当剪贴板中有一些 HTML 源时,它会检索 HTML 源 (source)

#!/usr/bin/env python
import gtk
print (gtk.Clipboard().wait_for_contents('text/html')).data

Edit1:使用this script 可以解决pywin32。但是有没有一个模块可以直接做到这一点(如果 CF_HTML 包含数据,获取并发送回)?

【问题讨论】:

    标签: python windows python-3.x clipboard clipboarddata


    【解决方案1】:

    Edit1 解决方案似乎实际上是最好的。

    1. 将上面的脚本(HtmlClipboard.py)放入python模块文件夹:C:\Users\xxx\AppData\Local\Programs\Python\Python36\Lib\site-packages
    2. 安装win32剪贴板
    3. 有了以上 2 点,您可以使用这样的脚本:

      #get CF_Html Clipboard
      import HtmlClipboard #.py script found in github
      if HtmlClipboard.HasHtml():
          # print('there is HTML!!')
          dirty_HTML = HtmlClipboard.GetHtml()
          print(dirty_HTML)
      else:
          print('no html')
      
      dirty_HTML= clean_HTML #do what you want with it
      
      #put data to clipboard:
      HtmlClipboard.PutHtml(clean_HTML)
      

    奖金:

    ##get CF_TEXT from clipboard
    import win32clipboard
    win32clipboard.OpenClipboard()
    text = win32clipboard.GetClipboardData(win32clipboard.CF_TEXT)
    win32clipboard.CloseClipboard()
    

    【讨论】:

      猜你喜欢
      • 2012-12-01
      • 2016-01-02
      • 1970-01-01
      • 2011-03-06
      • 1970-01-01
      • 2013-02-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多