for file in os.listdir(src_path):
img_names = os.listdir(src_path+"/"+file)
pattern = re.compile(r'([\d]+)_person([\d]+)_([\d]+)') #cam1_person062_10459.png,不能跳過字母,正則搜索需要加上要搜索前的字母"_person"
## 一個 \d+ 只能搜索到cam1 的1, 兩個 ([\d]+)_([\d]+) 下劃線是字符串中的下劃線, 返回 的是062,10459,字符串是, 數字_數字
## ([\d]+)_([\d]+)_([\d]+)不對 意思是第一個數字,下劃線連接第2個多個數字,錯誤,應該加上 _person,表示這個_person後面的多個數字062,
##再接 下劃線,連接的多個數字
num = len(img_names)
for index,img_name in enumerate(img_names):
if num>15: #大於10張抽取15張左右,自己改動
interval = (num//15) #多少個數據都抽取10個數據,30//10=3,間隔3張抽取數據,得到10張數據
if index % interval==0 or index==0: # 例如 0 1 2 3 4 5 6 ,間隔2,就是取2 4 6,同時取得第一個元素0
if '.png' not in img_name and '.jpg' not in img_name:
continue
print("********num",num)
# print(pattern.search(img_name).groups()) #('1', '062', '10464')
camid, pid,fname = map(int, pattern.search(img_name).groups()) # (1, 62, 10464)
python 正則re,字符串,數字的提取,123_re333_0356.jpg
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.