Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

petite question sur optparse.OptionParser

6 réponses
Avatar
fred
Bonjour,

Je recherche une manière propre de faire la chose suivante :

a.py --foo "a*.sep" me récupère tous les fichiers a*.sep du répertoire courant.

La manière pas propre serait de lancer la commande ls du shell et de
récupérer le résultat, mais... n'y aurait-il pas mieux ?

Merci d'avance.


Cordialement.

--
Fred

6 réponses

Avatar
Christophe
fred a écrit :
Bonjour,

Je recherche une manière propre de faire la chose suivante :

a.py --foo "a*.sep" me récupère tous les fichiers a*.sep du répertoire courant.

La manière pas propre serait de lancer la commande ls du shell et de
récupérer le résultat, mais... n'y aurait-il pas mieux ?

Merci d'avance.


Cordialement.




import glob

Mais je ne pense pas que le module glob soit aussi puissant que celui de
ton shell.
Avatar
fred
fred a écrit :

Bonjour,

Je recherche une manière propre de faire la chose suivante :

a.py --foo "a*.sep" me récupère tous les fichiers a*.sep du répertoire courant.

La manière pas propre serait de lancer la commande ls du shell et de
récupérer le résultat, mais... n'y aurait-il pas mieux ?


glob.glob(r'a*.sep')

Trop cool.

--
Fred
Avatar
fred
Christophe a écrit :

import glob


Yep, c'est ce que je viens de voir :-)

Mais je ne pense pas que le module glob soit aussi puissant que celui
de ton shell.


Ah mais ça, ce n'est pas un problème.

glob répond farpaitement à ce que je veux.

--
Fred
Avatar
Méta-MCI \(MVP\)
Bonjour !

Attention à la portabilité de glob, qui a une façon de traiter les
patterns différente de celle de Windows.
Sous Windows, ça marche, mais il arrive que l'on n'ait pas exactement le
résultat attendu.
Autrement dit, avec glob, il faut utiliser une syntaxe linux sur les OS
non linux.
--
@-salutations
--
Michel Claveau
Avatar
Pierre Maurette
Méta-MCI (MVP), le 04/03/2009 a écrit :
Bonjour !

Attention à la portabilité de glob, qui a une façon de traiter les patterns
différente de celle de Windows.
Sous Windows, ça marche, mais il arrive que l'on n'ait pas exactement le
résultat attendu.
Autrement dit, avec glob, il faut utiliser une syntaxe linux sur les OS non
linux.



C'est un peu ce qu'on attend de Python, une unification du code source,
non ?
Utiliser 'ls' est nettement moins universel. A moins de considérer
qu'il est normal d'avoir cygwin dans son PATH, ce que je fais mais qui
est quand même une grosse connerie...

--
Pierre Maurette
Avatar
Alex Marandon
Méta-MCI (MVP) wrote:
Attention à la portabilité de glob, qui a une façon de traiter les
patterns différente de celle de Windows.
Sous Windows, ça marche, mais il arrive que l'on n'ait pas exactement le
résultat attendu.
Autrement dit, avec glob, il faut utiliser une syntaxe linux sur les OS
non linux.



Autrement dit, glob permet d'écrire du code portable.