Python如何在字符串中输出字面量\n并优化SQL语句拼接?
问题解答
1. 输出字面量\n的解决方法
Python普通字符串中\是转义标识,\n会被解析为实际换行符。要输出字面的\n,两种方法二选一即可:
- 对反斜杠做转义:将原来的
'\n'改为'\\n',第一个反斜杠会将第二个反斜杠标记为普通字符,最终输出结果就是\n - 使用原始字符串:在字符串开头加
r前缀,比如r'\n',原始字符串会忽略所有转义规则,直接输出字符本身。
2. 字符串拼接优化建议
当前用加号逐段拼接的方式易写错、难排查问题,推荐直接用Python 3.6及以上版本支持的f-string(格式化字符串字面值),配合三重引号实现多行字符串,代码可读性会高很多,示例如下:
l_d = f"""LOAD DATA INFILE '{f}' INTO TABLE {n} FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\\n' IGNORE 1 ROWS;"""
这种写法的优势:
- 无需手动拼接字符串和变量,变量直接写在
{}里即可 - 三重引号包裹的多行字符串,写出来的格式和最终输出的SQL格式完全一致,不需要手动插入
\n控制换行,减少出错概率 - 代码逻辑一目了然,后续修改SQL结构也更方便
如果运行环境低于Python3.6,也可以用str.format()方法替代,写法如下:
l_d = """LOAD DATA INFILE '{}' INTO TABLE {} FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\\n' IGNORE 1 ROWS;""".format(f, n)
内容的提问来源于stack exchange,提问作者Tim
相关产品推荐
相关产品推荐

