J'ai un groupe de documents créé par un script appelé comme ceci: ceci devrait renvoyer la chaîne "nom_123.12" p> p> * Score * code> est un flotteur et j'ai besoin dans un autre script identifier le fichier avec le plus petit numéro dans le dossier. Exemple: p>
4 Réponses :
min code> prend une fonction clé . Vous pouvez utiliser cela pour définir le chemin min code> est calculé:
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é.
Vous pouvez essayer d'obtenir d'abord la partie numéro, puis de le convertir pour flotter et trier.
Par exemple:
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]))))
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('./'))