Я пытаюсь преобразовать базу данных доступа (.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()