我有很多统一行的文本文件,我想加载到mysql数据库中,但文件并不完全一致。在开始处有几行用于一些其他信息,并且每6行有时间戳。从txt文件加载非均匀数据到msql数据库
由于我的文件格式,“LOAD DATA INFILE”似乎不是答案。它看起来不够灵活。
注:该文件的标题占用预定数量的行。时间戳是可预测的,但还有一些其他可以弹出的随机注释需要忽略。他们总是从几个关键字开始,但我可以检查。
我在中间文件的示例:
103.3 .00035
103.4 .00035
103.5 .00035
103.6 .00035
103.7 .00035
103.8 .00035
103.9 .00035
Time: 07-15-2009 13:37
104.0 .00035
104.1 .00035
104.2 .00035
104.3 .00035
104.4 .00035
104.5 .00035
104.6 .00035
104.7 .00035
104.8 .00035
104.9 .00035
Time: 07-15-2009 13:38
105.0 .00035
105.1 .00035
105.2 .00035
从此,我需要的信息加载到三个字段。第一个字段需要是文件名,另一个字段在示例中。我可以将文件名添加到每个数据行的前面,但如果使用脚本来加载数据,这可能不是必需的。
如果需要,我可以更改文件格式,但我不想丢失时间戳和标题信息。
SQLAlchemy看起来像python的一个可能的好选择,我很熟悉。
我有成千上万行的数据,因此加载我已有的所有文件可能起初速度较慢,但此后,我只想加载新文件的行。所以,我需要对我加载的内容进行选择,因为我不想要重复的信息。
关于从文本文件到mysql数据库的选择性数据加载方法的任何建议? 而且,除此之外,对于仅在数据库中尚未存在的文件行中加载,您有什么建议?
谢谢大家。同时,我会更多地研究一下SQLAlchemy,看看我是否能找到适合的地方。
这可能适用于第一次加载文件,但是如何只读取最后几行更新数据库? – mouche 2009-07-28 18:40:29
使用IGNORE LINES? – oggy 2009-07-28 22:34:45