Comment aurais-je pu mieux faire - Python - Programmation
Marsh Posté le 10-03-2011 à 18:54:52
Serieusement les gens, je vous donne a tous une occasion sans pareil de faire étalage de vos connaissance et pas une réponse? J'ai pas pondu la solution optimale du premier coup quand meme?
Marsh Posté le 10-03-2011 à 20:03:22
Citation : Comment aurais-je pu mieux faire |
En n'oubliant pas une parenthèse?
if len(listD) != len(listG):
flux = open(sys.argv[1]+'/image_list.txt', 'w')
c'est mal placé, il faut plutôt le mettre après le test if len(listD)!= len(listG): car si tu quittes sur ce test, inutile d'avoir ouvert en écriture.
Bon, si j'avais eu à le faire en perl, j'aurais procédé ainsi:
Code :
|
Je ne sais pas pour python, mais le glob de base de perl n'aime pas les blancs dans les paths, d'ou le recours à bsd_glob et le flag GLOB_QUOTE.
A+,
Marsh Posté le 28-03-2011 à 10:53:00
Bonjour,
Et ça sert à quoi d'avoir des listes entrelacées ? Es tu sûr que les fichiers se correspondent s'il y en a le même nombre, que leur tri est le même ?
Marsh Posté le 01-04-2011 à 22:09:33
listdir pour le contenu d'un dossier, pas besoin de sortir glob pour un truc pareil
izip + chain.from_iterable l'entrelac
en python, les chemins ne se join pas à la main, prière d'utiliser os.path.join
Code :
|
Si on veut éviter que ce ne soit lisible, je recommande d'y aller à coup de writelines ou de join par dessus, et en laissant le refcount CPython s'occuper du fichier:
Code :
|
Mais bon, sur ce genre d'utilities j'aurais tendance à sortir directement sur stdout et à piper depuis le shell.
Code :
|
Marsh Posté le 09-03-2011 à 15:44:12
Salut à tous,
je débute en python, je m'en sert pour faire des petites conneries, genre opérations répétitives sur des fichiers, manipulation de texte, etc.
Récemment, j'ai du faire un script qui allait chercher deux dossier dans un chemin donné en ligne de commande, récupère la liste des fichiers dans chacun de ces deux dossiers, puis crée un fichier texte qui va contenir les deux listes entrelacées.
J'ai pas vraiment de probleme, dans la mesure ou ca marche, mais je voulais savoir si il y avait un moyen plus succint et plus élégant de faire comme j'ai fait.
Message édité par snafu8 le 10-03-2011 à 18:53:59