[問題] 匹配字串中幾種可能(找副檔名)

看板Python作者 (干我屁事喔北七)時間7年前 (2018/07/21 12:26), 7年前編輯推噓3(304)
留言7則, 4人參與, 7年前最新討論串1/1
標題可能寫得有點文言文XD 簡單來說,我想寫一個找到某個目錄中所有的圖檔 那麼圖檔的副檔名就有很多種了,例如jpg,jpeg,bmp,png,gif等等 那麼我應該怎麼找到這些呢? 我用re.compile(r'.*\.[(jpg)(png)]')沒辦法找到,他仍然把當作一6個字符來找,所以多無關緊要的檔案都被算在裡面 最後是做一個list裡面存副檔名用for去跑 但覺得這樣會拖慢程式速度, 各位高手有解嗎~? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.36.186.223 ※ 文章網址: https://www.ptt.cc/bbs/Python/M.1532147180.A.AF4.html

07/21 12:31, 7年前 , 1F
list不用for // if 副檔名 in list
07/21 12:31, 1F
抱歉,我可能沒說清楚 我的List存的是.png .jpg 然後整個程式碼邏輯是這樣: for 副檔名 in list: if 副檔名 in filename: print(true) 其中filename為字串,用for一個一個取副檔名類別去做匹配 但擔心這樣程式執行效率差,不知道有無更好的做法~ ※ 編輯: ponwar87123 (114.36.186.223), 07/21/2018 12:38:15

07/21 12:40, 7年前 , 2F
re的pattern寫成’.*\.(jpg|bmp|png)’呢?
07/21 12:40, 2F

07/21 12:40, 7年前 , 3F
裡面副檔名可以自己加上去
07/21 12:40, 3F

07/21 12:46, 7年前 , 4F
樓上正解,用 | 來分隔
07/21 12:46, 4F
謝謝各位,已經可以解決了!! ※ 編輯: ponwar87123 (114.36.186.223), 07/21/2018 12:54:58

07/24 22:38, 7年前 , 5F
建議你先name, ext = os.path.splitext(filename)
07/24 22:38, 5F

07/24 22:40, 7年前 , 6F
這樣才不會搜到'~/dir/av.jpgood.mp4'這種檔案
07/24 22:40, 6F

07/24 22:42, 7年前 , 7F
ext是分離出的附檔名
07/24 22:42, 7F
文章代碼(AID): #1RKhNihq (Python)