学习起因:学习人脸识别的时候,官网的示例“准备数据”一栏中需要我们在每个图片地址后面添加一个相应的数字标签。(我是s1对应1的)
实现:本来是 D:\2017two\learning_future\pca\PCA\ORL\s1\1.pgm
都变成了D:\2017two\learning_future\pca\PCA\ORL\s1\1.pgm;1
挺简单的,直接放代码...
import re
path=r"D:\2017two\learning_future\pca\PCA\at.txt"
contents=''
with open(path) as file_object:
contents=file_object.readlines()
add_labels=[]
for line in contents:
pa=r"s(.+?)\\"
patt=re.compile(pa)
haha=re.findall(patt,line)
line=line.rstrip()+";"+haha[0]+'\n'
add_labels.append(line)
with open(path,'w') as file_object:
for line in add_labels:
file_object.write(line)
遇到的问题:本来写正则表达式的时候是直接
pa=r“\pca\PCA\ORL\s(.+?)\1.pgm”
但是发现匹配失败了。然后回顾了Python 正则表达式入门(初级篇)后发现原来想要匹配\,而不让python认为它是转义,可以在它前面再加一个\。