У меня есть 2 переменные finalpath
и tblname
.Переменная finalpath
содержит имена текстовых файлов, из которых мы загружаем данные, а tblname
содержит имена таблиц, в которые мы загружаем данные из finalpath
.Я использую Python Connector для запуска моих запросов 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 файла.Теперь проблема в том, что у меня есть 100 из 1000 файлов по пути /mnt/Wdrive/pc70/SK/E07/
.Я хочу создать таблицы, которые соответствуют именам файлов, а затем загрузить данные в соответствующие таблицы.Я успешно создал таблицы, используя следующий код:
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
Myкод завершается со следующей ошибкой
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
Есть ли какое-либо возможное решение для этого?Ждем отзывов