用wxPython将复杂的数据结构传递到剪贴板可以吗?
我希望我的wxPython应用程序支持应用程序不同运行实例之间的剪切/复制/粘贴操作。是否可以简单地对数据结构进行pickle,将其作为文本复制到剪贴板,然后取消pickle以进行粘贴操作 我知道我必须检查数据是否有来自我的应用程序的迹象。或者我可以试着解开那些东西吗?如果pickle试图解压剪贴板上留下的任意文本,那么它会失败吗 此外,这种方式复制的数据量是否有实际限制 我今天在Windows和Linux上运行-没有尝试过Mac 编辑用wxPython将复杂的数据结构传递到剪贴板可以吗?,python,wxpython,clipboard,pickle,Python,Wxpython,Clipboard,Pickle,我希望我的wxPython应用程序支持应用程序不同运行实例之间的剪切/复制/粘贴操作。是否可以简单地对数据结构进行pickle,将其作为文本复制到剪贴板,然后取消pickle以进行粘贴操作 我知道我必须检查数据是否有来自我的应用程序的迹象。或者我可以试着解开那些东西吗?如果pickle试图解压剪贴板上留下的任意文本,那么它会失败吗 此外,这种方式复制的数据量是否有实际限制 我今天在Windows和Linux上运行-没有尝试过Mac 编辑 我知道文档中有这样的评论。我真的不在乎恶意用户试图破坏他自
我知道文档中有这样的评论。我真的不在乎恶意用户试图破坏他自己的软件实例,如果这是人们担心的,他们应该反对pickle。我的问题是实用性的,而不是安全性的。你不应该信任剪贴板上的数据来取消勾选,除非你有确定的方法来确保它是由你的应用程序编写的,并且没有被修改 从python文档中: 警告:pickle模块不用于防止 错误的或恶意构造的数据。永远不要解开数据 从不可信或未经验证的来源接收
如果适用,我建议您使用众多python实现之一将数据转换为json或从json转换为json 纯文本很容易使用剪贴板传输,而且将json对象转换回python也没有风险
最后一件事:没有被弃用的风险。如果另一个程序想同时使用剪贴板怎么办?@dan:和其他使用剪切/复制/粘贴功能的软件一样,我的数据结构不是严格的层次结构。例如,某些对象指向其父对象。我正在努力将其最小化,但它仍然存在。通过谷歌搜索JSON,它看起来不太适合这项任务。同样的问题也适用。