编写通用脚本将数据从文件上传到数据库表

时间:2012-11-23 07:11:36

标签: python c database shell

请考虑这种情况:

我在数据库中有不同的表格,例如table1,table2,table3 .....

现在,对于这些表中的每一个,我都有数据进入平面文件,这些文件将被插入到相应的表中。

我想编写一个通用脚本,它将读取平面文件的第一行,并通过将平面文件中的数据类型与存在的表的模式进行匹配来确定应该插入哪个表。

假设:考虑的所有表格都有不同的模式。

请建议这是否可行,如果是,请指导如何实现这一目标。

1 个答案:

答案 0 :(得分:1)

您可以尝试使用此通用代码:

import os
import glob
import MySQLdb

path = '/path/to/directory/containing/flatfiles'
conn_mysql = MySQLdb.connect(host = "localhost",user = "root",passwd="root",db="dbname")
cursor_mysql = conn_mysql.cursor()
table_to_use = ""
for filename in glob.glob( os.path.join(path, '*.txt') ):
    print "Reading file: " + filename
    currentfile = open(filename, 'r')
    numcols = currentfile[0].split()
    if numcols is 10:
        table_to_use = "tbl1"
    elif numcols is 7:
        table_to_use = "tbl2"
    # So on and so forth
    for line in currentfile[1:]:
        insert_data_to_database(line, table_to_use)
        #use the above function to insert data based on the table_to_use