首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >转义MySQL LOAD DATA INFILE命令

转义MySQL LOAD DATA INFILE命令
EN

Stack Overflow用户
提问于 2018-01-16 02:17:41
回答 1查看 324关注 0票数 0

我想在Python3.6中转义这个命令,因为我想使用它来运行大量的csv文件。

代码语言:javascript
复制
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")

逗号显示为空格。这是输出:

代码语言:javascript
复制
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

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

编辑:为澄清添加图片:

也许我真的很粗鲁,遗漏了一些明显的东西,但我如何才能“原始字符串”它的C风格?

EN

回答 1

Stack Overflow用户

发布于 2018-01-16 19:32:19

以这样的方式进行转义:

代码语言:javascript
复制
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')
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48268624

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档