SyntaxError: EOL while scanning string literal的解决
Posted Tina
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SyntaxError: EOL while scanning string literal的解决相关的知识,希望对你有一定的参考价值。
【背景】
Python 2.7.2 中想要通过urllib下载百度空间中的图片,存到本地。
参考这里:
http://www.cnblogs.com/huangcong/archive/2011/09/03/2165565.html
如此实现:
saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic\\" + picName + \'.jpg\'
urllib.urlretrieve(picUrl, saved_pic) |
File "E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\hi-baidu-mover_v2011-12-17.py", line 251 saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic\\" + picName + \'.jpg\' ^ SyntaxError: EOL while scanning string literal |
【解决过程】
经过确认,确保自己的上述写法,是符合语法的,没有错误。但是结果却还是出错。
网上找了下,发现这位:
http://www.iteye.com/problems/64471
遇到了同样的问题。结果也是没法解决,或者只能用别的写法,来避免这个问题。
初步判断,应该是python的bug。
但是,事情总是要做的,还是要想办法实现功能才可以。
然后自己经过测试,有其他几种写法,是可以的,有些写法,还是会导致语法错误的。
结果如下:
# method 1: compile OK saved_pic = "E:\\\\WebServer\\\\WordPress\\\\to_wp\\\\hi-baidu-mover_v2\\\\pic\\\\" saved_pic += picName + \'.jpg\'
# method 2: compile OK #saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic" #saved_pic += \'\\\\\' + picName + \'.jpg\'
# method 3: fail -> SyntaxError: EOL while scanning string literal #saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic\\" + picName + \'.jpg\'
# method 4: fail -> SyntaxError: EOL while scanning string literal #saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic\\" #saved_pic += picName + \'.jpg\'
【总结】
python中,如果你的字符串最后一位是斜杠(slash)字符,那么即使字符串前面加了r表示regular的普通字符串,也是无法通过编译的,也是会导致SyntaxError的。
解决办法就是,避开这种写法,写成这样的:
# method 1: compile OK saved_pic = "E:\\\\WebServer\\\\WordPress\\\\to_wp\\\\hi-baidu-mover_v2\\\\pic\\\\" saved_pic += picName + \'.jpg\'
或者是这样:
# method 2: compile OK saved_pic = r"E:\\WebServer\\WordPress\\to_wp\\hi-baidu-mover_v2\\pic" saved_pic += \'\\\\\' + picName + \'.jpg\'
即可。
以上是关于SyntaxError: EOL while scanning string literal的解决的主要内容,如果未能解决你的问题,请参考以下文章
python 报错 SyntaxError: EOL while scanning string literal 问题原因 解决方案 EOL解释
SyntaxError: EOL while scanning string literal的解决
Python_报错:SyntaxError: EOL while scanning string literal
Python_报错:SyntaxError: EOL while scanning string literal
python:SyntaxError:EOL,同时扫描字符串文字
托斯卡谜题 73589 用 RBFW 解决。 (失败:SyntaxError:扫描字符串文字时 EOL (<string>)