python 正則re,字符串,數字的提取,123_re333_0356.jpg

    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)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章