Python 3.6 Windows:检索剪贴板CF_HTML格式



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

我尝试了win32剪贴板,但它不支持CF_HTML格式(Windows剪贴板包含许多格式)。

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

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

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

编辑1:使用此脚本可以使用pywin32。但是有没有一个模块能够直接做到这一点(如果CF_HTML包含数据,获取它,然后将其发回)?

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()

最新更新