• 2281
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:\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'


即可。

最新文章

  1. Linux 第04天
  2. [转] ServletContext 与application的异同
  3. 分布式架构高可用架构篇_01_zookeeper集群的安装、配置、高可用测试
  4. 搭建一个简单的Struts2框架
  5. Shade勒索病毒 中敲诈病毒解密 如 issbakev9_Data.MDF.id-A1E.f_tactics@aol.com.xtbl 解决方法
  6. UVa 699 The Falling Leaves
  7. 常用的富文本框插件FreeTextBox、CuteEditor、CKEditor、FCKEditor、TinyMCE、KindEditor ;和CKEditor实例
  8. contenteditable实现可编辑的HTML标签
  9. VR全景:电商巨头的角逐
  10. HBase海量数据存储
  11. python中list添加元素的方法append()、extend()和insert()
  12. JS中的toString方法
  13. [转] MySql 数据类型
  14. gitlab提交内容关联到slack通知
  15. 微处理器CPU 50年
  16. Flume分布式日志收集系统
  17. python数据结构之哈希表
  18. Django之模板Template
  19. 深入php内核,从底层c语言剖析php实现原理
  20. redis安装(linux)

热门文章

  1. 04 学习java养成良好的写作习惯
  2. GFS分布式文件系统脚本
  3. 8.2.3 覆写 Equals
  4. 18清明校内测试T1
  5. 关于MySQL中自增的理解和设置
  6. linux - redis基础
  7. 20170704-WNDR4300uboot help info
  8. IDEA 工具使用报错总结
  9. [POJ1226]Substrings(后缀数组)
  10. hdu 4975 最大流解决行列和求矩阵问题,用到矩阵dp优化