使用wxPython通过剪贴板传递复杂的数据结构是否可以?

时间:2011-07-29 18:18:16

标签: python wxpython clipboard pickle

我希望我的wxPython应用程序支持应用程序的不同运行实例之间的剪切/复制/粘贴操作。可以简单地挑选一个数据结构,将其作为文本复制到剪贴板,然后将其取下来进行粘贴操作吗?

我知道我必须检查数据,看看它是否来自我的应用程序。或者我可以尝试去解开那里的任何东西吗?如果它试图解开留在剪贴板上的任意文本,那么pickle有多么健壮吗?

此外,这种方式可以复制多少数据是否存在实际限制?

我今天在Windows和Linux上运行 - 没试过Mac。

修改 我知道文档中的那条评论。我真的不关心恶意用户试图破坏他自己的软件实例,如果这是人们担心他们应该弃用泡菜。我的问题是实用性,而不是安全性。

2 个答案:

答案 0 :(得分:1)

您不应该信任来自剪贴板的数据进行unpickling,除非您有一个确定的方法来确保它被您的应用程序所取代,并且没有被更改。

来自python文档:

  

警告pickle模块无法防范   错误或恶意构造的数据。永远不要破坏数据   从不受信任或未经认证的来源收到。

答案 1 :(得分:1)

如果适用,我建议您使用众多python实现之一将数据转换为json。

使用剪贴板很容易传输纯文本,而且没有将json对象转换回python的风险。

最后一件事:没有弃用的风险。