解析和排序日期



我有一个HTML文件,由以下10 mb组成:

<span class="user">Chat User1</span>
<span class="meta">Friday, August 29, 2014 at 6:03pm PDT</span>
<p>Some text</p>
<span class="user">Chat User2</span>
<span class="meta">Friday, August 29, 2014 at 6:01pm PDT</span>
<p>Some preceding text</p>

日期在文件中到处都是,对于每个日期,给定会话的聊天顺序是相反的。

我想做的是能够在python中构建一个按时间顺序写出所有内容的文本文件,即:

Chat User 2
Friday, August 29, 2014 at 6:01pm PDT
Some preceding text
Chat User 1
Friday, August 29, 2014 at 6:02pm PDT
Some text
...

考虑到文件的大小,我不确定这里最好的方法是什么,但我在想……也许建立一个有user, datetext键的大字典(用字符串,日期时间,字符串作为各自的数据类型),然后对date进行排序?老实说,我不知道最好的方法是什么。

对于仅仅10 mb,我肯定会使用内存排序。我会用Beautiful Soup解析HTML,用给定的类创建一个对象数组:

class Chat:
    def __init__(self, user, date, text):
        self.user = user
        self.date = date
        self.text = text

和排序数组:

ut.sort(key=lambda x: x.date, reverse=True)

但是如果原始文件中的顺序完全相反,并且您不想使用大量内存,则可以逐个读取文件,并在结果文件的开头插入每个聊天。

相关内容

  • 没有找到相关文章

最新更新