PHWinfo banniere

Titres
PORTAIL ANNUAIRE ARTICLES COMPARATEUR HÉBERGEURS DEVIS FORUMS RÉDUCTEUR D'URL
Précédent   PHWinfo > Autres forums > Forum Programmation & Conception > fr.comp.lang.python > Petite correction, please...
S'inscrire FAQ Membres Recherche Messages du jour Marquer les forums comme lus
Petite correction, please...

Réponse
 
LinkBack Outils de la discussion
Vieux 15/10/2007, 20h45   #1
Pierre Maurette
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Petite correction, please...

Bonsoir,

<verbiage à sauter>
Je me remets à Python après de longue semaines passées sur d'autres
choses. J'étais à deux doigts d'avoir tout perdu d'un apprentissage
assez intensif, c'est un classique chez moi. Mais pour Python je m'y
refuse, comme pour le C par exemple. Heureusement, je peux utiliser mon
code pour me remettre dans le bain...
Mon but est de faire de Python mon langage outil dans un contexte de
portabilité totale Linux - Windows s'il y a lieu, et de favoriser les
paquetages/bibliothèques installés par défaut.
Dans cette optique j'avais fait de l'utilitaire avec TKInter. Je m'y
suis remis en programmant des greffons pour Gedit et Nautilus. Tout à
fait convaincant, d'autant que n'ayant aucune culture Unix, je suis
très laborieux dans les langages de script historiques.
J'en arrive aux scripts pour OpenOffice.org. Je ne cible pour l'instant
que les scripts internes. C'est l'apocalypse documentaire, mais je
m'accroche. J'en arrive au script en question...
</verbiage à sauter>

Au départ j'ai des commandes trouvées sur cette page:
<URL:http://ll.lairdutemps.org/linux/ooo>
pour lister des formats de fichiers. Je teste les commandes sous Debian
et XP/Cygwin, ça marche. Mais je ne veux pas m'imposer un environnement
particulier, donc je ne peux pas récupérer ces commandes. Donc, je le
fais entièrement en Python. Je bricole sous Eclipse/Pydev, avec une
version 2.3.4 qui est celle de mon OOo. J'en arrive à:

<code>
#!/usr/bin/python
# -*- coding: iso-8859-1 -*-

import sys, os, re, glob

print sys.version, '\n', sys.version_info

inidir = 'D:\\Program Files (x86)\\OpenOffice.org
2.2\\share\\registry\\modules\\org\\openoffice\\Ty peDetection'
filepattern = '*'
#matchsubstring = 'node oor:name="'
#extractpattern = re.compile(matchsubstring + '([^"]*).*',
re.IGNORECASE)
extractpattern =
re.compile('<[\s]*node[\s]+oor[\s]*:[\s]*name[\s]*=[\s]*"([^"]*).*',
re.IGNORECASE)

for root, dirs, files in os.walk(inidir):
for filename in glob.glob(os.path.join(root, filepattern)):
try:
for line in open(filename):
try:
print re.search(extractpattern, line).group(1)
except AttributeError: # no match -> no 'group' attribute for
None
pass
except IOError:# filename is a dir
pass
sys.exit(0)
</code>

Je sollicite donc une correction, sachant que deux points me
chagrinent:

- Comment pourrais-je faire pour garder la souplesse de la séquence en
commentaire:

matchsubstring = 'node oor:name="'
etc.

et conserver une certaine souplesse dans la présence d'espaces
inutiles, comme le fait le regex utilisé ? Un truc un peu comme le
IGNORECASE ?

- L'utilisation des exceptions pour éviter de tester par
os.path.isdir() et le retour de re.search() est-elle pertinente ?

Je précise que ce code sera archivé (mots clé 'regex, grep, sed') mais
certainement pas utilisé. Je vais en effet maintenant voir une solution
à partir des modules xml.???, toujours essentiellement pour ne pas
mourir idiot.

Bonne soirée...

--
Pierre Maurette


  Réponse avec citation
Réponse


Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are oui
Pingbacks are oui
Refbacks are oui


Fuseau horaire GMT +1. Il est actuellement 09h32.


Édité par : vBulletin® version 3.7.2
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0 RC5 Tous droits réservés.
Version française #16 par l'association vBulletin francophone
PHWinfo est un site Éducation Sans Frontières
Ad Management by RedTyger
©Tous droits réservés par les parties respectives
Page generated in 0,07930 seconds with 9 queries