1. 程式人生 > >python提取路徑名稱,最後一個正斜槓後邊圖片名稱(加字尾)字串(python小白學習筆記五)

python提取路徑名稱,最後一個正斜槓後邊圖片名稱(加字尾)字串(python小白學習筆記五)

爬取京東圖片的時候,遇到了一個問題,假如需要把圖片儲存進去資料庫,需要把圖片路徑和圖片名稱儲存進去資料庫,但是圖片路徑是正斜槓,如下:/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