![](/img/trans.png)
[英]Python: How to convert multiple list that have multiple digits into array?
[英]How to have an ordered list of files with digits?
我有一個文件文件夾,想一個一個地讀取文件,因為它是視頻的幀。
但是,當我試圖獲得一個有序的文件列表時,它的順序如下:
data_dir = './data/'
filenames =listdir(data_dir)
N=len(filenames)
filenames.sort()
filenames
['Image1.jpg',
'Image10.jpg',
'Image11.jpg',
'Image12.jpg',
'Image13.jpg',
'Image14.jpg',
'Image15.jpg',
'Image2.jpg',
'Image3.jpg',
'Image4.jpg',
'Image5.jpg',
'Image6.jpg',
'Image7.jpg',
'Image8.jpg',
'Image9.jpg']
如何根據數字獲得有序的圖像列表?
使用正則表達式提取數字部分並使用自定義排序進行相應排序,您也可以使用正則表達式,如r"Image(\d+).jpg"
來精確。
import re
data_dir = './data/'
filenames =listdir(data_dir)
N=len(filenames)
filenames.sort(key=lambda filename : int(''.join(re.findall("\d+",filename))))
filenames
key
使用sorted
后的 function 和lambda
(假設所有文件名都包含“IMG”):
sorted_filenames = sorted(filenames, key= lambda x: int(x.split("IMG")[1].split(".")[0]))
結果:
['IMG1.bmp',
'IMG2.bmp',
'IMG3.bmp',
'IMG4.bmp',
'IMG5.bmp',
'IMG6.bmp',
'IMG7.bmp',
'IMG8.bmp',
'IMG9.bmp',
'IMG10.bmp',
'IMG11.bmp',
'IMG12.bmp',
'IMG13.bmp',
'IMG14.bmp',
'IMG15.bmp']
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.