SQL 批量插入 Python

SQL Bulk Insert in Python

我有一个 Python 脚本,可以导入 Excel 数据,格式化一些 columns/rows 并将结果保存为 CSV。然后将此 CSV 移动到服务器目录(通过脚本),以便我可以 运行 SQL 批量插入查询将其内容填充到 SQL Table 中。 但是,我的脚本在保存 CSV 时将当前日期附加到文件名。如何编辑代码的 Bulk INSERT 部分以确保它在每次脚本为 运行 时捕获此文件名,这样我就不必手动编辑 SQL 部分?我知道我可以省略附加部分,但出于审计目的我需要它。

这是我的脚本的相关部分(SQL 带有 *** 的部分表示我希望自动捕获新名称的位置(例如 testdata_15092020.csv)):

import os
import pandas as pd
import shutil
import glob
import pyodbc

os.system("cls")

# ...Multiple formatting steps...

currenttime = pd.to_datetime('today').strftime('%d%m%Y')
join.to_csv("testdata_" + currenttime + ".csv", index=False)

for CSVfile in glob.iglob(os.path.join('CURRENT WORKING DIRECTORY', "*.csv")):
    shutil.copy(CSVfile, 'SQL SERVER FILE DIRECTORY')

# ...Connection to SQL Database section...

cursor.execute("""BULK INSERT testdb.dbo.scriptresults
               FROM '\\SERVERNAME\TESTFILES\***.csv' 
               WITH
               (
                 FIRSTROW = 2,
                 FIELDTERMINATOR = ',',
                 ROWTERMINATOR = '\n'
                 );""")
cnxn.commit()

这个怎么样?

file_name = "testdata_" + currenttime + ".csv"

cursor.execute("""BULK INSERT master.dbo.scriptresults
               FROM '\\SERVERNAME\TESTFILES\""" + file_name + """' 
               WITH
               (
                 FIRSTROW = 2,
                 FIELDTERMINATOR = ',',
                 ROWTERMINATOR = '\n'
                 );""")