【已解决】python中字符串的最后一个字符是斜杠会导致出错:SyntaxError: EOL while scanning string literal
【背景】
python 2.7.2 中想要通过urllib下载百度空间中的图片,存到本地。
参考这里:
如此实现:saved_pic = r”E:WebServerWordPressto_wphi-baidu-mover_v2pic” + picName + ‘.jpg’
urllib.urlretrieve(picUrl, saved_pic)
但是去运行,结果出现语法错误:File “E:WebServerWordPressto_wphi-baidu-mover_v2hi-baidu-mover_v2011-12-17.py”, line 251
saved_pic = r”E:WebServerWordPressto_wphi-baidu-mover_v2pic” + picName + ‘.jpg'
^
SyntaxError: EOL while scanning string literal
【解决过程】
经过确认,确保自己的上述写法,是符合语法的,没有错误。但是结果却还是出错。
网上找了下,发现这位:
遇到了同样的问题。结果也是没法解决,或者只能用别的写法,来避免这个问题。
初步判断,应该是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:WebServerWordPressto_wphi-baidu-mover_v2pic"
#saved_pic += '\' + picName + '.jpg'
# method 3: fail -> SyntaxError: EOL while scanning string literal
#saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic" + picName + '.jpg'
# method 4: fail -> SyntaxError: EOL while scanning string literal
#saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic"
#saved_pic += picName + '.jpg'
# 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:WebServerWordPressto_wphi-baidu-mover_v2pic"
saved_pic += '\' + picName + '.jpg'
即可。