2011-09-07 41 views
1

我想一个文本文件加载到数据库中。我的文本文件大约是1.6GB。我需要写一个python脚本与所有标题的文本文件加载到数据库加载文本文件导入数据库使用python

我如何去这样做的任何指引?

谢谢

+1

您需要提供一些更多的信息;当然python可以做到这一点!发布文本文件的结构以及db预期数据的格式。我们需要更多信息。 –

+2

像你有什么样的文本文件? CSV?什么样的数据库? MySQL的? ... – naeg

+0

嗨,大家好,我使用MySQL数据库和一个普通的文本文件.TXT, – Clayton

回答

1

使用python肯定是可能的。如果你正在阅读mysql,你可以查看mysql-python。读取文本文件,您可以使用file = open('filename','r')和file.readline()来获取每行并解析它。

但是...有使用Python的额外开销。如果文本文件是有序的(即,每行一个reacord,具有相同数量的诸如逗号,制表符,分号等具有一致的定界符列的每行),则最有效的方式是将其加载直。在MySQL中,你可以这样做类似:

LOAD DATA INFILE '/folder/input.dat' INTO TABLE destination_table 
FIELDS TERMINATED BY ',' (id,field_1,field_2,field_3); 

如果你需要一些小的修改文件,比如你可以使用sed的命令行的行的开头或结尾改变逗号或事物(如果你在* nix或osx上......如果你在windows上,你将不得不安装)。

更新

LOAD DATA INFILE将是最快的:http://dev.mysql.com/doc/refman/5.5/en/load-data.html

当你说 “的文章1.一些文字2.一些文字3.一些文字马伊诺的开始”,是1,2 。,3.和MAINO不同的领域?如果你有2个字段,如标题和文章,你可能会格式化文本文档看起来是这样的:

This is my header of the article.;;And here is my article, it's a nice 
story about programming. 
My article goes on for many lines. 
And many more. 
<==============================================================================> 
This is my second article header.;;And here is article 2. It is. 
And is. 
Etc. 
<==============================================================================> 

然后,就像你可以使用LOAD DATA INFILE:

LOAD DATA INFILE '/folder/filename.txt' INTO TABLE destination_table 
LINES TERMINATED BY '<==============================================================================>' 
FIELDS TERMINATED BY ';;' (header,article); 
+0

非常感谢。 – Clayton

相关问题