Trier naturellement le chemin en Python

Chemin de tri

Si vous voulez trier le chemin naturellement (trier selon les nombres), vous pouvez mettre une expression lambda dans key comme indiqué ci-dessous.


natsorted(list(pathlib.Path(chemin).glob("*")),key=lambda x:x.name) 

Le côté suivant

Une histoire que si vous triez par chemin, ce sera un tri par dictionnaire

Il était nécessaire de trier les données d'image lors de la conversion d'un grand nombre d'images en PDF. Le nom du fichier image ressemble à ceci.

1.jpg
200.jpg
12.jpg
...

Je veux les organiser en fonction des nombres, donc je veux les trier naturellement au lieu de les trier dans un dictionnaire. Quand je l'ai eu avec pathlib et que je l'ai trié avec natsort, ça ressemblait à ceci.

PosixPath('/Users/usrname/images/1.jpg'),
PosixPath('/Users/usrname/images/10.jpg'),
PosixPath('/Users/usrname/images/20.jpg'),
...

Non, merci de travailler avec natsort. J'ai pensé, mais cela ne semble pas être trié par chemin. Cependant, les contre-mesures étaient fermement inscrites dans la référence.

Extrait de la référence natsort.py


>>> a = ['apple2.50', '2.3apple']
>>> natsorted(a, key=lambda x: x.replace('apple', ''), alg=ns.REAL)
['2.3apple', 'apple2.50']

Il semble bon de spécifier «key» de la même manière que «sort». Le nom du fichier à trier est renvoyé. Ceci est bien écrit dans la référence pathlib,

Extrait de la référence pathlib.py


>>> PurePosixPath('my/library/setup.py').name
'setup.py'

En d'autres termes, .name peut prendre la fin du chemin. Si vous les utilisez en combinaison, vous pouvez les trier. La formule est omise car elle se trouve au début. Quand j'ai essayé de l'utiliser, ça ressemblait à ça.

PosixPath('/Users/usrname/images/1.jpg'),
PosixPath('/Users/usrname/images/2.jpg'),
PosixPath('/Users/usrname/images/3.jpg'),
...

C'était bien trié. Toutes nos félicitations

Recommended Posts

Trier naturellement le chemin en Python
Tri personnalisé en Python3
Tri décroissant avec mongodb en python
Trier par date en python
[Python] Trier
Python #sort
Manipulation de chemin de fichier / dossier en Python
Obtenez le chemin du bureau en Python
Calculer la perte de propagation de l'espace libre en Python
Obtenez le chemin du script en Python
Trier les gros fichiers texte en Python
Obtenez le chemin du bureau en Python
Projet Euler # 15 "Lattice Path" en Python
Lors de la spécification de plusieurs clés dans le tri python
Quadtree en Python --2
Python en optimisation
CURL en Python
Nouveautés de Python 3.9 (2) - Tri des graphes non circulés dirigés en Python
Métaprogrammation avec Python
Python 3.3 avec Anaconda
Géocodage en python
SendKeys en Python
Méta-analyse en Python
Unittest en Python
Époque en Python
Discord en Python
Allemand en Python
DCI en Python
tri rapide en python
nCr en python
N-Gram en Python
Programmation avec Python
Plink en Python
Constante en Python
FizzBuzz en Python
Sqlite en Python
Étape AIC en Python
LINE-Bot [0] en Python
CSV en Python
Assemblage inversé avec Python
Réflexion en Python
Mise en œuvre du tri Stuge dans Python 3 (tri à bulles et tri rapide)
Constante en Python
nCr en Python.
format en python
Scons en Python 3
Puyopuyo en python
python dans virtualenv
PPAP en Python
Quad-tree en Python
Réflexion en Python
Chimie avec Python
Hashable en Python
DirectLiNGAM en Python
LiNGAM en Python
Aplatir en Python
Aplatir en python
[Python] Trier la liste de pathlib.Path dans l'ordre naturel