3

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

我试过win32clipboard,但它不支持CF_HTML格式windows剪贴板包含许多格式)。

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

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

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

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

4

1 回答 1

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()
于 2017-01-27T13:08:22.813 回答