我想在 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
转义该字符串的正确方法是什么?
也许我真的很厚,错过了一些明显的东西,但是我怎样才能“原始字符串”它的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/