SyntaxError: EOL while scanning string literal的解決

python中字符串的最後一個字符是斜槓會致使出錯:SyntaxError: EOL while scanning string literal

【背景】html

Python 2.7.2 中想要經過urllib下載百度空間中的圖片,存到本地。python

參考這裏:post

http://www.cnblogs.com/huangcong/archive/2011/09/03/2165565.html測試

如此實現:url

 

 saved_pic = r"E:\WebServer\WordPress\to_wp\hi-baidu-mover_v2\pic\" + picName + '.jpg'

urllib.urlretrieve(picUrl, saved_pic)spa

   可是去運行,結果出現語法錯誤:

 

 

   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

 

【解決過程】.net

通過確認,確保本身的上述寫法,是符合語法的,沒有錯誤。可是結果卻仍是出錯。code

網上找了下,發現這位:htm

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

遇到了一樣的問題。結果也是無法解決,或者只能用別的寫法,來避免這個問題。

初步判斷,應該是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'

 
  

便可。

相關文章
相關標籤/搜索