请考虑这种情况:
我在数据库中有不同的表说 table1,table2,table3 .....
现在,对于这些表中的每一个,我都有数据进入平面文件,这些文件将插入相应的表中。
我想编写一个通用脚本,它将读取平面文件的第一行,并通过将平面文件中的数据类型与存在的表的模式相匹配来确定应该插入哪个表。
假设:考虑的所有表都将具有不同的模式。
请建议这是否可行,如果是,请指导如何实现。
你可以试试这个通用代码:
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