表示文本中后续更改并使用Python处理此表示的标准方法是什么?

表示文本中后续更改并使用Python处理此表示的标准方法是什么?,第1张

概述假设我有一些文本(例如以字符串形式给出).稍后我将“编辑”这个文本,这意味着我想在某处添加内容或删除一些内容.通过这种方式,我将获得另一个版本的文本.但是,我不希望有两个字符串代表文本的每个版本,因为两个后续版本之间存在大量“重复”(相似之处).换句话说,字符串之间的差异很小,因此只是为了节省它们之间的差异更有意义.例如,第一个版本. This is my first version of the 假设我有一些文本(例如以字符串形式给出).稍后我将“编辑”这个文本,这意味着我想在某处添加内容或删除一些内容.通过这种方式,我将获得另一个版本的文本.但是,我不希望有两个字符串代表文本的每个版本,因为两个后续版本之间存在大量“重复”(相似之处).换句话说,字符串之间的差异很小,因此只是为了节省它们之间的差异更有意义.例如,第一个版本.

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

总结

以上是内存溢出为你收集整理的表示文本中后续更改并使用Python处理此表示的标准方法是什么?全部内容,希望文章能够帮你解决表示文本中后续更改并使用Python处理此表示的标准方法是什么?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1197257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存