我有一个包含.jpg文件(来自不同视频文件的帧)的目录。文件名看起来像“frame”{{{}。格式(视频的编号,frame编号)。 例如:“frame_1_1234.jpg”
如何使用两级排序按升序对文件进行排序?首先是视频的编号,其次是帧编号
现在我有这个:
['frame_0_0.jpg','frame_0_1.jpg','frame_0_10.jpg','frame_0_100.jpg','frame_0_1000.jpg','frame_0_1001.jpg','frame_0_1002.jpg','frame_0_1003.jpg','frame_0_1004.jpg','frame_0_1005.jpg','frame_0_1006.jpg','frame_0_1007.jpg',...]
我想要这个:
['frame_0_0.jpg', 'frame_0_1.jpg', 'frame_0_2.jpg',..., 'frame_1_0.jpg', 'frame_1_1.jpg', 'frame_1_2.jpg',...]
显然.sorted()首先盲目地选择最有效的数字
你也可以试试这个
set1=['frame_0_0.jpg'、'frame_0_1.jpg'、'frame_2_10.jpg'、'frame_1_100.jpg'、'frame_0_1000.jpg'、'frame_0_1001.jpg'、'frame_0_1002.jpg'、'frame_0_1003.jpg']
set1.sort()#将对列表中的元素进行排序
如果再次打印set1,您将得到如下结果: ['frame_0_0.jpg'、'frame_0_1.jpg'、'frame_0_1000.jpg'、'frame_0_1001.jpg'、'frame_0_1002.jpg'、'frame_0_1003.jpg'、'frame_1_100.jpg'、'frame_2_10.jpg']
您可能需要创建一个元组列表
(number_of_video, frame_number)
,对列表进行排序,然后创建文件名您可以使用sorted的
key
参数:输出
请注意,键使用正则表达式来查找字符串中的数字,您可以找到有关它们的更多信息,here
相关问题 更多 >
编程相关推荐