【背景】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'
便可。