爬取京东图片的时候,遇到了一个问题,假如需要把图片存储进去数据库,需要把图片路径和图片名称存储进去数据库,但是图片路径是正斜杠,如下:/img11.360buyimg.com/n7/jfs/t25855/259/1224767986/141142/af393ca6/5b8e328dN0671ae1e.jpg。
那么如何提取到 af393ca6/5b8e328dN0671ae1e.jpg 这个名称?
解决方法:使用正则表达式和提取字符串表达式
代码如下:
先从路径中查找最后一个 正斜杠到 .jpg后缀结尾的字符串。
复制代码
1
2
3
4a="ABCDEFGHIJABCDEFGHIJABCDEFGHIJ" b="H" print("在a中查找最后一个b后面的字符:"+a[a.rfind(b):])
完整代码:
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29#正则表达式 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])
运行结果如下:
复制代码
1
2
3
4
5
6
7
8D:工具pythonToolsCatchTest1101venvScriptspython.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
最后
以上就是明理保温杯最近收集整理的关于python提取路径名称,最后一个正斜杠后边图片名称(加后缀)字符串(python小白学习笔记五)的全部内容,更多相关python提取路径名称内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复