zoukankan      html  css  js  c++  java
  • SyntaxError: EOL while scanning string literal的解决

    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:WebServerWordPress o_wphi-baidu-mover_v2pic" + picName + '.jpg'

    urllib.urlretrieve(picUrl, saved_pic)

       但是去运行,结果出现语法错误:
       File "E:WebServerWordPress o_wphi-baidu-mover_v2hi-baidu-mover_v2011-12-17.py", line 251
        saved_pic = r"E:WebServerWordPress o_wphi-baidu-mover_v2pic" + 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:WebServerWordPress o_wphi-baidu-mover_v2pic"     #saved_pic += '\' + picName + '.jpg'

        # method 3: fail -> SyntaxError: EOL while scanning string literal     #saved_pic = r"E:WebServerWordPress o_wphi-baidu-mover_v2pic" + picName + '.jpg'

        # method 4: fail -> SyntaxError: EOL while scanning string literal     #saved_pic = r"E:WebServerWordPress o_wphi-baidu-mover_v2pic"     #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:WebServerWordPress o_wphi-baidu-mover_v2pic"     saved_pic += '\' + picName + '.jpg'

    
    

    即可。

  • 相关阅读:
    UWP 应用获取各类系统、用户信息 (1)
    Windows Composition API 指南
    详解 UWP (通用 Windows 平台) 中的两种 HttpClient API
    Win2D 官方文章系列翻译
    Spring的IOC容器, AOP切面及启动流程简述
    maven和gradle的全局阿里云镜像代理
    SpringBoot项目中@Async方法没有执行的问题分析
    Oracle向MySQL迁移的注意点整理
    SpringBoot项目替换内部的依赖jar包
    MySQL的主从复制
  • 原文地址:https://www.cnblogs.com/is-Tina/p/8830502.html
Copyright © 2011-2022 走看看