-1
votes

Y a-t-il un moyen de trouver un fichier avec le plus petit numéro de son nom?

J'ai un groupe de documents créé par un script appelé comme ceci: xxx

* Score * est un flotteur et j'ai besoin dans un autre script identifier le fichier avec le plus petit numéro dans le dossier. Exemple: xxx

ceci devrait renvoyer la chaîne "nom_123.12"


0 commentaires

4 Réponses :


5
votes

min prend une fonction clé . Vous pouvez utiliser cela pour définir le chemin min est calculé: xxx


2 commentaires

Ne peut pas avoir de problèmes avec la recherche du fichier de numéro le plus petit d'un répertoire réel des fichiers (bien que l'approche soit la même)?


@Austine J'ai changé la liste des fichiers dans une liste de tous mes fichiers et cela a fonctionné.



0
votes

Vous pouvez essayer d'obtenir d'abord la partie numéro, puis de le convertir pour flotter et trier. Par exemple: xxx


0 commentaires

0
votes

Je voulais juste dire que Mark Meyer est complètement juste sur celui-ci, mais vous avez également mentionné que vous lisiez ces noms de fichiers à partir d'un répertoire. Dans ce cas, il y a un peu de code que vous pourriez ajouter à la réponse de Mark:

import glob, os
os.chdir("/path/to/directory")
files = glob.glob("*")

print(min(files, key=lambda x: float((x.split('_')[1]))))


0 commentaires

0
votes

Un moyen d'obtenir la valeur la plus basse en fournissant un répertoire.

import os
import re
import sys

def get_lowest(directory):
    lowest = sys.maxint
    for filename in os.listdir(directory):
        match = re.match(r'name_\d+(?:\.\d+)', filename)
        if match:
            number = re.search(r'(?<=_)\d+(?:\.\d+)', match.group(0))
            if number:
                value = float(number.group(0))
                if value < lowest:
                    lowest = value
    return lowest

print(get_lowest('./'))


0 commentaires