1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
| f = open('zxy.txt')
ch = f.read()
f.close()
import re
debr = re.compile('PERS ([^ ]+) {\n[^ ]+ tache\d+\n.+?}',re.DOTALL)
task = re.compile('[^ ]+ (tache\d+)\Z')
dateheure = re.compile('[^ ]+ (\d\d/\d\d/\d\d\d\d \d\d:\d\d),?\Z')
L,li = [],[]
for (name,fh) in ( ( m.group(1),m.group(0).splitlines()[1:-1]) for m in debr.finditer(ch) ):
for ln in fh:
mdh = dateheure.match(ln)
if mdh:
li.append(mdh.group(1))
else:
mt = task.match(ln)
if mt:
if li:
L.append((name,nom_tache,li))
li = []
nom_tache = mt.group(1)
elif ln:
print repr(ln)
raw_input(38*'*'+'\n* Attention: ligne non orthodoxe !! *\n'+38*'*')
L.append((name,nom_tache,li))
li = []
liste_taches = []
[ liste_taches.append(tache) for (name,tache,li) in L if tache not in liste_taches ]
from operator import itemgetter
L.sort(key=itemgetter(1,0))
print 'Liste L triee :\n\n'+'\n\n'.join([ repr(u) for u in L])
f = open('zxy double.txt','w')
name_en_cours = ''
tache_en_cours = ''
for (name,tache,li) in L:
if tache != tache_en_cours:
tache_en_cours, name_en_cours = tache,name
f.write('\n---------------------------------\n'+tache_en_cours+'\n\n'+name_en_cours + '\n')
if name != name_en_cours:
name_en_cours = name
f.write('\n'+name_en_cours + '\n')
f.write('\n'.join(li)+'\n')
f.close() |
Partager