python提取路徑名稱,最後一個正斜槓後邊圖片名稱(加字尾)字串(python小白學習筆記五)
阿新 • • 發佈:2018-12-19
爬取京東圖片的時候,遇到了一個問題,假如需要把圖片儲存進去資料庫,需要把圖片路徑和圖片名稱儲存進去資料庫,但是圖片路徑是正斜槓,如下:/img11.360buyimg.com/n7/jfs/t25855/259/1224767986/141142/af393ca6/5b8e328dN0671ae1e.jpg。
那麼如何提取到 af393ca6/5b8e328dN0671ae1e.jpg 這個名稱?
解決方法:使用正則表示式和提取字串表示式
程式碼如下:
先從路徑中查詢最後一個 正斜槓到 .jpg字尾結尾的字串。
a="ABCDEFGHIJABCDEFGHIJABCDEFGHIJ" b="H" print("在a中查詢最後一個b後面的字元:"+a[a.rfind(b):])
完整程式碼:
#正則表示式 import re import urllib.request #在a中查詢最後一個b後面的字元 a="ABCDEFGHIJABCDEFGHIJABCDEFGHIJ" b="H" print("在a中查詢最後一個b後面的字元:"+a[a.rfind(b):]) #(1)提取資料圖片的名稱 strint1="//img11.360buyimg.com/n7/jfs/t25855/259/1224767986/141142/af393ca6/5b8e328dN0671ae1e.jpg" #在最後一個字元中找 end="/" string2=strint1[strint1.rfind(end):] # 在strint1中查詢最後一個正斜槓/後面的字元,圖片名稱 print("string2:"+string2) pat2='/(.+?\.jpg)' #提取最後一個斜槓到 .jpg字尾名稱 imagelist2=re.compile(pat2).findall(string2) imagelist2=str(imagelist2[0]) #提取第一個名稱 ,去掉正斜槓 print('imglist:'+imagelist2) #提取 /img11.360buyimg.com/n7/jfs/ 到字尾 .jpg的名稱 pat1='/img11.360buyimg.com/n7/jfs/(.+?\.jpg)' result=re.search(pat1,strint1); print(result) imagelist=re.compile(pat1).findall(strint1) imagelist=str(imagelist) print('imglist:'+imagelist[0])
執行結果如下:
D:\工具\pythonTools\CatchTest1101\venv\Scripts\python.exe D:/工具/pythonTools/CatchTest1101/venv/test/test110504.py 在a中查詢最後一個b後面的字元:HIJ string2:/5b8e328dN0671ae1e.jpg imglist:5b8e328dN0671ae1e.jpg <re.Match object; span=(1, 88), match='/img11.360buyimg.com/n7/jfs/t25855/259/1224767986> imglist:[ Process finished with exit code 0