加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

表示文本中后续更改并使用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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读