0

我有 6 个名为 Data_20190823101010、Data_20190823101112、Data_20190823101214、Data_20190823101310、Data_20190823101410、Data_20190823101510 的文件。

这些是要加载到 SQL Server DB 表中的日常文件。

由于尺寸和性能的原因需要一一加载。

Python代码必须一次选择一个文件,处理并加载到数据库表中。

如何编写代码?提前致谢。

import glob
import os
import pandas as pd
import time
from datetime import datetime
import numpy as np

#folder_name = 'Data_Folder'
file_type = 'csv'
file_titles = ['C1','C2','C3',C4','C5']
df = pd.concat([pd.read_csv(f, header=None,skiprows=1,names=file_titles,low_memory=False) for f in glob.glob(folder_name + "//*Data_*" )])
4

1 回答 1

0

您可以将这些 csv 文件导入数据框中,然后连接并使用 pandas to_sql函数将数据连接并上传到 MS SQL Server DB

from sqlalchemy import create_engine
import urllib
import pyodbc
import pandas as pd
import glob


connection= urllib.parse.quote_plus("DRIVER={SQL Server Native Client 11.0};SERVER=Server_name;DATABASE=DB Name")
engine = create_engine('mssql+pyodbc:///?odbc_connect={}'.format(connection))

path = r'C:\file_path' # local drive File path
all_csv_files = glob.glob(path + "/*.csv")


for filename in all_files:
    df = pd.read_csv(filename, index_col=None, header=0)
    df.to_sql('Table_Name', schema='dbo', con = engine)
于 2019-08-23T04:54:19.143 回答