我有大约500GB的文本文件分开几个月。在这些文本文件中,前43行只是连接信息(不需要)。接下来的75行是观察的描述。接下来是4行(不需要),然后是下一个75行的观察。在
我想要的就是这75行(每一个观察的描述词都在同一个地方),它们的特征如下:
ID: 5523
Date: 20052012
Mixed: <Null>
.
.
我想把每次观察都改成csv格式5523;20052012;;..
。所以我得到了更小的文本文件。因为描述符是相同的,我知道第一个位置,例如ID
一旦我完成了文本文件,我将打开下一个并附加它(或者创建一个新文件会更快吗?)。在
我所做的工作效率很低我一直在打开文件。正在加载。逐行删除这些观察结果。如果它是采取一个公平的一点测试样本,这显然不是最好的方法。在
有什么建议都很好。在
你说你有“大约500GB的文本文件”。如果我理解正确,你并没有为每个观察设置固定的长度(注意,我不是说行数,我是指观察所有行的总长度,以字节为单位)。这意味着您必须遍历整个文件,因为您无法确切知道新行将在哪里。在
现在,根据每个文本文件的大小,您可能需要寻找不同的答案。但是如果每个文件足够小(小于1GB?),您可能可以使用^{} 模块,该模块为您处理按行搜索。在
你可能会这样使用它:
我试过这个测试,它在五秒钟内就把一个23MB的文件给啃了。在
你应该考虑把你想保存的信息写入数据库。在python中,可以使用内置的sqlite3。关于docs很容易理解。在
你说你现在正是你想要保存的每个文件中的行。所以你可以试试这个。在
这样你就可以有一个名为info_的列表来保存每个条目,每个条目都包含一个包含来自csv文件的字段的列表
你说的“装载”是什么意思?如果你的意思是把整件事都读成一条线,那么是的,这会很糟糕。处理文件的自然方法是利用file对象是文件行上的迭代器这一事实:
相关问题 更多 >
编程相关推荐