Eu rapidamente criei um script python que chama o processo mediainfo para cada arquivo em um critério de pesquisa e ordena os mesmos, classificando os critérios e imprimindo os resultados. Modifique para suas próprias necessidades.
Isso usa a classificação pura de string para os valores. Você também pode adicionar reverse=True
para o método classificado, se desejar, ou fazer o que quiser com o código. Este script exige que você passe argumentos com 'ao redor deles. O argumento de critérios de classificação pode ser qualquer valor que o mediainfo retorne dos arquivos.
import os, sys, glob
import pprint
# Call: python mediainfo_sort.py 'search_criteria' 'sort_criteria'
# Call example: python mediainfo_sort.py '*.avi' 'Bit rate'
files = glob.glob(sys.argv[1])
criteria = sys.argv[2]
# Will have data in format: {'file_path': {'Media Attribute', 'Value'}}
file_datas = {}
# Contruct data by calling mediainfo for all files in
for file_path in files:
mediainfo = os.popen('mediainfo "%s"' % file_path).read()
file_data = {}
infos = mediainfo.splitlines()
for info in infos:
if ':' in info:
info_split = info.split(':')
file_data[info_split[0].strip()] = info_split[1].strip()
file_datas[file_path] = file_data
# function for sorted, uses Media attribute (sort_criteria) value as sorting key
def getKey(item):
return item[1][criteria]
sorted_files = sorted(file_datas.items(), key=getKey)
# In the end just join the keys (filenames) with newline and print
print '\n'.join([x[0] for x in sorted_files])