1

我正在编写一个脚本,该脚本涉及连续分析数据并以多线程方式输出结果。因此,基本上结果文件(一个 xml 文件)会不断更新/修改(有时每秒 2-3 次)。

我目前正在使用lxml解析/修改/更新 xml 文件,现在工作正常。但是据我所知,您必须重写整个 xml 文件,即使有时您只需<weather content=sunny />在文件中的某处添加一个条目/子条目。xml 文件逐渐变大,开销也越来越大。

就效率/资源而言,还有其他方法可以更新/修改 xml 文件吗?或者当 xml 文件太大而无法解析/修改/更新时,您将不得不切换到 SQL 数据库或类似数据库?

4

2 回答 2

2

不,您通常不能 - 不仅仅是 XML 文件,任何文件格式。

如果您完全覆盖字节,则只能“就地”更新(即不添加或删除任何字符,只需用相同字节长度的内容替换一些字符)。

使用某种形式的数据库听起来是个不错的选择。

于 2012-05-13T09:26:52.070 回答
0

听起来您确实需要某种数据库,正如Li-anung Yip所说,这将解决各种令人讨厌的多线程同步问题。

你说你的数据在逐渐增加?它是如何被消费的?客户端是否每次都被迫下载整个结果文件?

不知道您的用例,但也许您可以考虑使用ATOM 提要来分发您的数据更改?为Atom pub提供支持也将有效地支持您的数据。它仍然是 XML,但采用符合标准的格式,易于使用和轮询更改。

于 2012-05-13T12:41:23.060 回答