Конвертируйте accdb в csv файлы на S3, используя python - PullRequest
0 голосов
/ 24 сентября 2019

Я пытаюсь преобразовать базу данных доступа (.accdb) в файлы csv, используя скрипты python.База данных доступа находится на S3.Итак, мне нужно открыть его на S3 и преобразовать его в CSV-файлы.В accdb есть несколько таблиц, поэтому для каждой таблицы мне нужно создать отдельный файл csv.С помощью приведенного ниже кода я могу преобразовать файл accdb в несколько файлов csv на моем локальном компьютере после локального копирования файла accdb.Мне нужна помощь в этом на S3.

import boto3
import pyodbc, csv

s3 = boto3.client('s3'
                      ,aws_access_key_id="my_access_key"
                      ,aws_secret_access_key="my_secret_key")

file_path = "my_s3_accdb_file_path.accdb"

bucket_name = "my_bucket_name"

conn_str = (
    r'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};'
    r'DBQ=on_local_folder/accdb_file_path.accdb;'
    )
#print(conn_str)
cnxn = pyodbc.connect(conn_str)
crsr = cnxn.cursor()
crsr2 = cnxn.cursor()
for rows in crsr.tables(tableType='TABLE'):
    #print(rows.table_name)
    t_name = rows.table_name
    sql = "SELECT * FROM {}".format(t_name)
    #print(sql)
    crsr2.execute(sql)
    res = crsr2.fetchall()
    with open(t_name+".csv", "w", newline='') as file:
        for row in res:
            csv.writer(file).writerow(row)
crsr.close()
crsr2.close()
del crsr
del crsr2
cnxn.close()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...