0

このシナリオを検討してください:

データベースには、table1、table2、table3などのさまざまなテーブルがあります.....

今、これらのテーブルのそれぞれについて、対応するテーブルに挿入されるフラット ファイルにデータが入っています。

フラット ファイルの最初の行を読み取り、フラット ファイルのデータ型と存在するテーブルのスキーマを照合することで、挿入するテーブルを決定する汎用スクリプトを作成したいと考えています。

仮定: 考慮されるすべてのテーブルは、異なるスキーマを持つことになります。

これが実現可能かどうかを提案してください。可能であれば、これを達成する方法を教えてください。

4

1 に答える 1

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
于 2012-11-23T08:02:20.090 に答える