python - 转义 MySQL LOAD DATA INFILE 命令

标签 python mysql csv

我想在 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

转义该字符串的正确方法是什么?

编辑:添加图像以供澄清: enter image description here

也许我真的很厚,错过了一些明显的东西,但是我怎样才能“原始字符串”它的C风格?

最佳答案

这样逃脱:

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')

关于python - 转义 MySQL LOAD DATA INFILE 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48268624/

相关文章:

mysql - ALTER TABLE table_name AUTO_INCREMENT = 1000;给我语法错误

mysql - 我如何从mysql中的两个表中计算

java - 读取 CSV 文件和 IF 语句值 0?

python - 用于保存和查询坐标的高性能 python 数据结构

python - 反转数据框单个列中值的顺序

python - Golang net.Listen 绑定(bind)到已在使用的端口

python - python中的 'with'函数有什么作用?

php - 登录系统 PHP 不会返回任何内容

r - 如何在R中将简体中文转换为繁体中文?

java - 在 Java 中使用 Regex 解析 CSV 文件