Сначала преобразуйте кадр данных в файл .csv, используя приведенную ниже команду
name_of_your_dataframe.to_csv("filename.csv", sep='\t', encoding='utf-8')
Затем загрузите файл .csv в .mdb, используя pyodbc
MS Access может напрямую запроситьCSV-файлы и выполните запрос Make-Table (https://support.office.com/en-us/article/Create-a-make-table-query-96424f9e-82fd-411e-aca4-e21ad0a94f1b) для создания результирующей таблицы. Однако для удаления строк мусора требуется некоторая очистка. Ниже открываются два файла: один для чтения и другой для записи. Предполагается, что мусор находится вВ первом столбце csv логика if записывает любую строку, в которой есть данные, во втором столбце (при необходимости измените):
import os
import csv
import pyodbc
# TEXT FILE CLEAN
with open('C:\Path\To\Raw.csv', 'r') as reader, open('C:\Path\To\Clean.csv', 'w') as writer:
read_csv = csv.reader(reader); write_csv = csv.writer(writer,lineterminator='\n')
for line in read_csv:
if len(line[1]) > 0:
write_csv.writerow(line)
# DATABASE CONNECTION
access_path = "C:\Path\To\Access\\DB.mdb"
con = pyodbc.connect("DRIVER={{Microsoft Access Driver (*.mdb, *.accdb)}};DBQ={};" \
.format(access_path))
# RUN QUERY
strSQL = "SELECT * INTO [TableName] FROM [text;HDR=Yes;FMT=Delimited(,);" + \
"Database=C:\Path\To\Folder].Clean.csv;"
cur = con.cursor()
cur.execute(strSQL)
con.commit()
con.close() # CLOSE CONNECTION
os.remove('C\Path\To\Clean.csv') # DELETE CLEAN TEMP