mdb格式文件可以通過mdbtools工具將內(nèi)中包含的每張表導(dǎo)出到csv格式文件。由于access數(shù)據(jù)庫和postgresQL數(shù)據(jù)庫格式上會(huì)存在不通性,所以使用python的文件處理,將所得csv文件修改成正確、能識(shí)別的格式。
導(dǎo)入腳本說明(此腳本運(yùn)行于linux):
1.apt-get install mdbtools,安裝mdbtools工具
2.將mdb 文件拷貝到linux虛擬機(jī)中,修改腳本中mdb文件目錄‘dir'
3.修改服務(wù)器及數(shù)據(jù)庫配置
4.執(zhí)行腳本
代碼如下:
# -*- encoding: utf-8 -*-
import os
import re
import psycopg2
import csv
#mdb文件目錄
dir = r'/home/kotaimen/mdb_file/'
mdb_tbl_dic = {}
def make_create_sql():
if os.path.isfile(dir + 'create.sql'):
os.remove(dir + 'create.sql')
for mdb_file in os.walk(dir):
if len(mdb_file[2]) >0:
for file_p in mdb_file[2]:
if file_p[-3:] == 'mdb':
print file_p
cmd = 'mdb-schema %s >>/home/kotaimen/mdb_file/create.sql'
cmd = cmd % (dir + file_p)
print cmd
os.system(cmd)
cmd = 'mdb-tables -1 %s ' % (dir + file_p)
val = os.popen(cmd).read()
mdb_tbl_dic[file_p] = val.split('/n')
print mdb_tbl_dic
def modefy_create_sql():
sql_file_name = dir + 'create.sql'
sql_file_name_des = sql_file_name + '_new'
fobj = open(sql_file_name, 'r')
fobj_des = open(sql_file_name_des, 'w')
for eachline in fobj:
#判斷表名中是否含有空格
if eachline.find('TABLE ') >= 0:
if eachline.find(';') >= 0:
start_loc = eachline.find('TABLE ') + 6
新聞熱點(diǎn)
疑難解答
圖片精選