表示文本中后续更改并使用Python处理此表示的标准方法是什么?
发布时间:2020-12-20 13:48:22 所属栏目:Python 来源:网络整理
导读:假设我有一些文本(例如以字符串形式给出).稍后我将“编辑”这个文本,这意味着我想在某处添加内容或删除一些内容.通过这种方式,我将获得另一个版本的文本.但是,我不希望有两个字符串代表文本的每个版本,因为两个后续版本之间存在大量“重复”(相似之处).换句
假设我有一些文本(例如以字符串形式给出).稍后我将“编辑”这个文本,这意味着我想在某处添加内容或删除一些内容.通过这种方式,我将获得另一个版本的文本.但是,我不希望有两个字符串代表文本的每个版本,因为两个后续版本之间存在大量“重复”(相似之处).换句话说,字符串之间的差异很小,因此只是为了节省它们之间的差异更有意义.例如,第一个版本.
This is my first version of the texts. 第二个版本: This is the first version of the text,that I want to use as an example. 我想将这两个版本保存为一个对象(它不一定是XML,我只是作为一个例子使用它): This is the <removed>my</removed> <added>first</added> version of the text<added>,that I want to use as an example</added>. 现在我想进一步.我想将所有后续编辑保存为一个对象.换句话说,我将有两个以上版本的文本,但我想将它们保存为一个对象,以便很容易获得给定版本的文本,并且很容易找出它们之间的区别两个后续(或任何两个给定)版本. 总而言之,我的问题是:表示文本中的更改以及使用Python处理此表示的标准方法是什么. 解决方法
我可能会选择difflib:
https://docs.python.org/2/library/difflib.html
您可以使用它来表示字符串版本之间的更改,并创建自己的类来存储连续的差异. 编辑:我刚刚意识到它在你的用例中没有用,因为difflib的差异实质上是存储两个字符串,所以你最好只存储它们.但是我相信这是处理文本更改的标准(库)方式,所以我不会删除这个答案. 编辑2:虽然看起来如果你找到一种方法将unified_diff应用于字符串,这可能是你的答案.似乎没有办法用difflib做到这一点:https://bugs.python.org/issue2057 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |