最近在处理一个大型图像时要将图片的位置信息以坐标形式保存在文件名中。但是在还原的时候遇到一个问题,就是怎么从原字符串中提取坐标信息并将其赋值给具体元素。下面以“100_35.png”做示例。(可能不够全面,具体其他替换需求可以查询正则化的相关文档)
需要import re
import re
re_name = re.compile(r'^(\d{2,3})_(\d{1,2}).png$')#定义要过滤的字符串的形式
name_new= re_name.match(str(name)).groups()
解释一下,上述需要改的地方为‘’内的部分。
“^”为删除的意思;
“()”为保留括号内的内容;
“\d”是数字;
“{}”内的数字是几位数字,上述举例的意思是保留[2,3]位数字。如果只想保存两位直接可以{2}就可以了。
最后的“.png”没在括号内自然就删除了。
所以最后的结果是name_new = (‘100’, ‘35’)然后就可以通过name_new[i]的形式进行调用了。
补充一下关于报错“‘NoneType’ object has no attribute ‘groups’”
一般是由于匹配模板定义有问题。导致没有找到对应的字符串。自然就没办法调用下一步的“groups()”方法。