在Python 中,这个提示,一般是因为特殊字符引起的,比如换行符,比如 \ 等。
下面有几个示例:
1. 换行符
# 源错误代码 get_tabs="select b.owner,b.table_name, regexp_substr(b.table_name, ‘20[[:digit:]]+‘, 1,1,‘i‘) from tab_model a,all_tab_models b where a.owner = b.owner and a.tab_model=b.tab_mod and regexp_like(b.table_name,‘20[[:digit:]]+$‘) and length(regexp_substr(b.table_name, ‘20[[:digit:]]+‘,1,1,‘i‘))=:nums and regexp_substr(b.table_name, ‘20[[:digit:]]+‘, 1,1,‘i‘)<to_char(TRUNC(SYSDATE,‘YYYY‘)-RESERV_NUMS+1,:format)" # 正确代码 get_tabs="select b.owner,b.table_name,regexp_substr(b.table_name, ‘20[[:digit:]]+‘, 1,1,‘i‘) from dbmon.tab_model a,dbmon.all_tab_models b where a.owner = b.owner and a.tab_model=b.tab_mod and regexp_like(b.table_name,‘20[[:digit:]]+$‘) and length(regexp_substr(b.table_name, ‘20[[:digit:]]+‘,1,1,‘i‘))=:nums and regexp_substr(b.table_name, ‘20[[:digit:]]+‘, 1,1,‘i‘)<to_char(TRUNC(SYSDATE,‘YYYY‘)-RESERV_NUMS+1,:format)"
两者区别就在于,将本来通过回车实现的换行,全部删除,也就是原则 上双引号内的内容要在一行内(当然视觉上可能不在同一行)。
2. \
双引号内的 \ ,要经过转义符转义。
#错误代码 saved_pic = r"E:\WebServer\WordPress\to_wp\hi-baidu-mover_v2\pic\" + picName + ‘.jpg‘ # 正确代码 saved_pic = "E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic\\" saved_pic += picName + ‘.jpg‘ saved_pic = r"E:\WebServer\WordPress\to_wp\hi-baidu-mover_v2\pic" saved_pic += ‘\\‘ + picName + ‘.jpg‘