• 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'


即可。

SyntaxError: EOL while scanning string literal的解决的更多相关文章

  1. python SyntaxError: EOL while scanning string literal

    错误原因是,字符串以 \ 结尾 或者字符串缺少引号. 写代码拼接windows 路径出现这个错误, 查资料才知道 python中字符串不能以 \ 结尾 我的代码如下 import os dirname ...

  2. SyntaxError: EOL while scanning string literal

    在Python 中,这个提示,一般是因为特殊字符引起的,比如换行符,比如 \ 等. 下面有几个示例: 1. 换行符 # 源错误代码 get_tabs="select b.owner,b.ta ...

  3. 转 [Error]EOL while scanning string literal

    https://blog.csdn.net/orangleliu/article/details/38943749 项目中有个定时任务,每天取到一些表数据传到一个外部接口,但是最近总是有异常,今天查了 ...

  4. [Error]EOL while scanning string literal

    有一个经常性的工作项目.需要一天的一些表数据到外部接口,但最近总是异常.今天检查的原因. 第一本地和测试环境中测试程序是没有问题,有网络环境只会在日志中抛出一个异常.产生主要的例外是推定异常数据. , ...

  5. python ( EOL while scanning string literal)

    python错误: EOL while scanning string literal: 这个异常造成的原因是字符串,引号没有成对出现 参考:http://www.jb51.net/article/6 ...

  6. python接口自动化,从excel取param的内容太多,使用eval转换报错'EOL while scanning string literal

    背景: 做接口自动化时,有个接口的参数内容很多,可以从excel中读取出来,但是在eval()进行转化时,就报错"'EOL while scanning string literal&quo ...

  7. 后台传给前端字符串为null或解析JSON字符错误——SyntaxError: JSON.parse: unterminated string literal at line 1 column 9018638 of the JSON data

    第一种情况: 第二种情况: 首先看看你的JSONObject或JSONArray的引用有没有Getter()和Setter()方法,这个必须要加上 问题:两张表双向多对一.一对多时.响应给后台使,出现 ...

  8. 使用MySql数据库, 浏览器接收返回数据报错SyntaxError: unterminated string literal

    用php写了一个很简单的页面, 用来记录常用的oracle的关键字和各种函数, 以后用起来查一下方便, 原来是用java写了一个web项目, 但是用起来太麻烦, 真的不如php方便, 然后就把整理的内 ...

  9. SyntaxError: JSON.parse: bad control character in string literal at line 1 column 16 of the JSON data

    JSON.parse转化Json字符串时出现:SyntaxError: JSON.parse: bad control character in string literal at line 1 co ...

随机推荐

  1. VM虚拟机NAT链接外网

    1.vi /etc/sysconfig/networkNETWORKING=yesHOSTNAME=localhost.localdomainGATEWAY=192.168.110.2 2.vi /e ...

  2. ajax异步请求详解

    1.XMLHttpRequst的出现才有了异步处理 2.创建XmlHttpRequest对象 var request=new XMLHttpRequest(); 注意:如果要兼容IE6以下浏览器则需要 ...

  3. maxtrid 3D视差

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. Python ---- KMP(博文推荐+代码)

    既解决完后宫问题(八皇后问题)后,又利用半天的时间完成了著名的“看毛片”算法——KMP.对于初学者来说这绝对是个大坑,非常难以理解. 在此,向提出KMP算法的三位大佬表示诚挚的敬意.!!!牛X!!! ...

  5. Python 1 初识python

    1.Python介绍 Python是一种高级语言,与JAVA C# 等同.可以编写各种应用程序,每种语言都有其合适的应用场景.而Python 的优势在于更加人性化.简便的语法规则,以及针对各种具体场景 ...

  6. log4net的相关使用笔记

    1, XmlConfigurator 创建添加一个Tracer project,引用nuget上最新的log4net 在Tracer里新增一个AppLog类: public static class ...

  7. Linux下diff与patch命令的配合使用

    在Linux下,diff与patch命令配合使用可以进行简单的代码维护工作. [A] diff diff命令用于比较文件的差异,可以用于制作patch文件.但此命令参数众多.格式多样,所以在此仅介绍较 ...

  8. [bzoj2783][JLOI2012]树_树的遍历

    树 bzoj2783 JLOI2012 题目大意:给定一棵n个点的树.求满足条件的路径条数.说一个路径是满足条件的,当且仅当这条路径上每个节点深度依次递增且点权和为S. 注释:$1\le n\le 1 ...

  9. Spring整体架构

    Spring整体架构 Spring的整体架构 Spring框架是分层架构的,它包含了一系列的功能要素. Spring整体架构图 模块分类 1. Core Container Core Containe ...

  10. HDU 4508

    祼的完全背包问题 #include <iostream> #include <cstdio> #include <cstring> #include <alg ...