loadData =“ LOAD DATA'%s'到表%s”%finalpath%tblname TypeError:格式字符串不足的参数

时间:2019-04-12 08:52:11

标签: python mysql mariadb pymysql mysql-connector-python

我有2个变量finalpathtblname。变量finalpath包含从中加载数据的文本文件的名称,变量tblname包含从finalpath加载数据的表的名称。我正在使用python连接器来运行我的SQL查询。

当我尝试使用以下代码行从单个文件中加载数据时

loadData= "LOAD  DATA INFILE '/mnt/Wdrive/pc70/SK/E07/CM_lad_19Dez2018_14Uhr38.txt' into TABLE CM_lad_19Dez2018_14Uhr38"

它成功地从给定的路径中读取文本文件,并将相应的数据加载到表CM_lad_19Dez2018_14Uhr38中 对于1个文件,这是正确的。 现在的问题是,路径/mnt/Wdrive/pc70/SK/E07/中有1000个文件中的100个。我想创建与文件名相对应的表,然后将数据加载到其相应的表中。 我已经使用以下代码成功创建了表:

    rootDir = '/mnt/Wdrive/pc70/SK/E07'
for dirName, subdirList, fileList in os.walk(rootDir):
        for fname in fileList:
                tblname = os.path.basename(fname).split('.')[0]
                print(tblname)
                sql= 'CREATE TABLE %s (Datum varchar(12), Uhrzeit varchar(13), UpsACT_V varchar(6), UpsPRE_V varchar(6), IpsACT_A varchar(6),IpsPRE_A varchar(6), PpsACT_W varchar(6), PpsPRE_W varchar(10))' %tblname
                myCursor.execute(sql)
                myConnection.commit()

基于CREATE TABLE查询,我为LOAD DATA创建了一个查询,如下所示

loadData= "LOAD DATA ' %s ' INTO TABLE %s " %finalpath %tblname

我的代码退出并出现以下错误

Traceback (most recent call last):
File "25createtable.py", line 41, in <module>
loadData= "LOAD DATA ' %s ' INTO TABLE %s " %finalpath %tblname
TypeError: not enough arguments for format string

我为LOAD DATA尝试了许多其他组合,但没有成功

loadData= "LOAD DATA LOCAL INFILE '%s[..]' INTO TABLE %s [..]" %finalpath % tblname
loadData= "LOAD DATA LOCAL INFILE [..] INTO TABLE %s [..]" % tblname

对此有任何可能的解决方案吗? 期待反馈

0 个答案:

没有答案