最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

【已解决】python中字符串的最后一个字符是斜杠会导致出错:SyntaxError: EOL while scanning string literal

StringEncoding crifan 9757浏览 0评论

【已解决】python中字符串的最后一个字符是斜杠会导致出错: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: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<br />    saved_pic = r”E:WebServerWordPressto_wphi-baidu-mover_v2pic” + picName + ‘.jpg'<br />                                                                                        ^<br />SyntaxError: EOL while scanning string literal

【解决过程】

经过确认,确保自己的上述写法,是符合语法的,没有错误。但是结果却还是出错。

网上找了下,发现这位:

http://www.iteye.com/problems/64471

遇到了同样的问题。结果也是没法解决,或者只能用别的写法,来避免这个问题。

初步判断,应该是python的bug。

但是,事情总是要做的,还是要想办法实现功能才可以。

然后自己经过测试,有其他几种写法,是可以的,有些写法,还是会导致语法错误的。

结果如下:

<p> &nbsp;&nbsp;&nbsp; # method 1: compile OK<br />&nbsp;&nbsp;&nbsp; saved_pic = "E:\WebServer\WordPress\to_wp\hi-baidu-mover_v2\pic\"<br />&nbsp;&nbsp;&nbsp; saved_pic += picName + '.jpg'</p><p>&nbsp;&nbsp;&nbsp; # method 2: compile OK<br />&nbsp;&nbsp;&nbsp; #saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic"<br />&nbsp;&nbsp;&nbsp; #saved_pic += '\' + picName + '.jpg'</p><p>&nbsp;&nbsp;&nbsp; # method 3: fail -&gt; SyntaxError: EOL while scanning string literal<br />&nbsp;&nbsp;&nbsp; #saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic" + picName + '.jpg'</p><p>&nbsp;&nbsp;&nbsp; # method 4: fail -&gt; SyntaxError: EOL while scanning string literal<br />&nbsp;&nbsp;&nbsp; #saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic"<br />&nbsp;&nbsp;&nbsp; #saved_pic += picName + '.jpg'</p>
【总结】
python中,如果你的字符串最后一位是斜杠(slash)字符,那么即使字符串前面加了r表示regular的普通字符串,也是无法通过编译的,也是会导致SyntaxError的。
解决办法就是,避开这种写法,写成这样的:
<p> &nbsp;&nbsp;&nbsp; # method 1: compile OK<br />&nbsp;&nbsp;&nbsp; saved_pic = "E:\WebServer\WordPress\to_wp\hi-baidu-mover_v2\pic\"<br />&nbsp;&nbsp;&nbsp; saved_pic += picName + '.jpg'</p>
<br />或者是这样:
<p>&nbsp;&nbsp;&nbsp; # method 2: compile OK<br />&nbsp;&nbsp;&nbsp; saved_pic = r"E:WebServerWordPressto_wphi-baidu-mover_v2pic"<br />&nbsp;&nbsp;&nbsp; saved_pic += '\' + picName + '.jpg' </p>
<br />

即可。

转载请注明:在路上 » 【已解决】python中字符串的最后一个字符是斜杠会导致出错:SyntaxError: EOL while scanning string literal

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
83 queries in 0.162 seconds, using 22.17MB memory