Выход из команды MySQL LOAD DATA INFILE

0

Я хочу избежать этой команды в Python 3.6, поскольку я хочу использовать ее для запуска ее через большое количество файлов csv.

for filename in glob.glob(CSV_FOLDER_LOCATION + "/*.csv"):
    # Adds quotes to filename because of the problem caused by spaces in path names
    quoted_filename = '"' + filename + '"'
    os.system(MYSQL_LOCATION + r" -u root LOAD DATA INFILE " + quoted_filename + " INTO TABLE " + TABLE_NAME +
              r" CHARACTER SET ascii FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '/n' IGNORE 1 LINES")

Запятая отображается как пробел. Это результат:

C:/Program Files/MySQL/MySQL Server 5.7/bin/mysql.exe -u root LOAD DATA INFILE "C:/prog/csv/CSVFiles\CC19711977ZWEIG-ZZ.csv" INTO TABLE vcc2.tmp_cards CHARACTER SET ascii FIELDS TERMINATED BY   ENCLOSED BY '"' LINES TERMINATED BY '/n' IGNORE 1 LINES

Каков правильный способ избежать этой строки?

Редактировать: Добавлено изображение для уточнения: Изображение 174551

Может быть, я действительно толстый и пропуская что-то очевидное, но как я могу "сырой строки" это C-стиль?

  • 0
    Почему вы делаете это через os.system() ?
  • 0
    Пожалуйста, дайте мне ваше предложение!
Показать ещё 4 комментария
Теги:
csv

1 ответ

0

Сбежал так:

os.system(
            r"LOAD DATA LOCAL INFILE " + '"' + CSV_FOLDER_LOCATION + '/' + filename + '"' + " INTO TABLE " + TABLE_NAME +
            r' CHARACTER SET ascii FIELDS TERMINATED BY ' + '\',\'' + ' ENCLOSED BY ' + '\'"\'' +
            ' LINES TERMINATED BY ' + '\'\\n\'' + ' IGNORE 1 LINES')

Ещё вопросы

Сообщество Overcoder
Наверх
Меню