Bonjour,
je ne sais pas développer en python, j'utilise un script qui me permet de retrouver une chaine dans un fichier XML, de la traiter et de me remplir un fichier avec le résultat.

Aujourd'hui, il me faudrait faire totalement l'inverse, c'est à dire :
Lire un fichier, pour chaque ligne la compresser, passer de l'ascii au base64, puis de l'ajouter dans le fichier xml...

voici la méthode utilisée actuellement pour trouver la chaine et de l'extraire :
def parse_titles(prproj):
media_re = r'<Media ObjectUID="([^"]+)".*?<ImporterPrefs[^>]+>(.*?)</ImporterPrefs>.*?<Title>(\w+)</Title>.*?</Media>'
for match in re.finditer(media_re, prproj, re.DOTALL):
uid, data, title_name = match.groups()
print(data)
print(title_name)
binary = base64.decodestring(data.encode('ascii'))

header, compressed = binary[:32], binary[32:]
prtl_xml = zlib.decompress(compressed)
print(prtl_xml)
prtl_xml = prtl_xml.decode('utf-16')
text_list = re.findall('<TRString[^>]*?>(.*?)</TRString>', prtl_xml)
#print(matches)
#import pdb;pdb.set_trace()
TITLES[uid] = text_list
text = pprint.pformat(TITLES)
open('detected_titles.txt', 'wb').write(text.encode('utf-8'))
Et typiquement dans une fichier XML il y a tout ça :

<Media ObjectUID="f89b634b-4179-4b1c-9b5a-022b4600a227" ClassID="7a5c103e-f3ac-4391-b6b4-7cc3d2f9a7ff" Version="19" Index="4294967295">
<IsProxy>false</IsProxy>
<ActualMediaFilePath>1414091852</ActualMediaFilePath>
<StreamNumber>0</StreamNumber>
<SingleAudioChannel>-1</SingleAudioChannel>
<IgnoreAudio>false</IgnoreAudio>
<IgnoreVideo>false</IgnoreVideo>
<ImporterPrefs Encoding="base64" Checksum="2943830682">AQAAAAAAAADOcQAAAAAAAENvbXByZXNzZWRUaXRsZQB4nO0d2VIjOVIv/R+e
eQcfYI4IDRM0xw4xdNOBmW546jDGgHfdttc23bDfuS/zB7M/sbt5SKW7bGjA
5ZkKB8aVl1JSZiolVan+918pfhb34ovoi4r4KrpiLCaiJ4ZiIH4SP4q6WBU1
+F8BzEB0AH4F2IG4Iexv4kwcihWg2iCan8WOkGIXaIbiEjg+i1P4NRTTAH4G
UqZQZpcwH51yd0QDyqyJLfjbhL8GUFQDGinekWS+/ixagJ/SNWo3IYoPUEJb
PAD2EKjG4htcjUGLHaAbizvgQMlpKglSp3Q1BawupwPXXWqPHXEN2D6UxpJm
UaNG46xd+vDZgfqxDj5cigOQNSHoEXEzpQ9FugFoiyVewydfw3xa1G8ItNOo
hiHG1vEE2nMa0VLDETq7x6o5VoL1nZC+PcKPxTH125BKmID9fUzaL/Lb1P71
AbVHF6RPqZxrgMfl/ajqbejPQMqIdNR1j+EQM6tEX6t9KPkL9Y3WIaZTQ+k0
EufQS0fwfQBSWgCri23yJSw7xCLHBfw+Eu8BxvTsdUzv4pC6Jfag9w/g8x76
6ZQ4mDbESOjTMej4DepxSzUZq9pqD9b4U4DcAA3WF68HJHMWt9+eYVv5rblL
1sbWg9ddZXMtoMGeMNa2S6W1CYvX18qyV1V9DUzC9xDqb2M1RFJZXDPGbxPe
hkrQZUh6DUF7m8qFc3TJ01Njd61WStejJpq5NdH4vLo056xNc0Z9UhpX5+q9
t0DTEf9Q9nJH8S3mJevKS1qgaxtoEH9Kte9SmTi6oZ+ug9bb4AWsYT6thOgW
xtgTZXsjgGJs0xHuFK7xP3IOaKT5Qnx2Ldmb0nyIj9UYMfukYRsgfeDFsegh
i53pmm6SzHjtqrkyXdwZXN2TH3azKD1y/PV5dJhdzt8A1gbYLcA60BuX4u8q
driS2H661H57xGGi9UT8E6japAvqEKeSIHlIvaRheyB5SJaAfWL6B2Xk04ay
Tuh7MFOOoUMvR0xXfIL/VxQ7dzJPDzESLLBHvoRjaU9daY44TkJM7pEubwH3
L/jNnuZ7QYpKWrXZIy8YEO4QaPpkW9wza2AVq6BJ5Zl+cayap2QJttInqxpR
37y2lvOXjtSPs3btPXsU2bCHYlR2dNJjRzvL/HWe40M5+t+TlwxILxy/fbuI
06BVDSnr/qTq4+boIVaS92AcxFY6VtY9gfzGLzFNl5JxMaeMCzWv6dMYOFD5
B3qJHlc5ow3xkmYKl5QR4/hiR9ZPqq48/qaoJPnkiGR3yDfPiLZF40cn65U6
zaVQ1nz0Kbkm6tl1m0Wr66mt1b3y7Yxt4/2SW5/N+TTbmy2htLzvs7y4pV1m
rV0MG/RH1NIK/2xWmLK3iZI6UFKWz/7KMXg5bNC3tOqcOWL+PCy+Gqfn4Pm8
lchMkLl5rqhlcP1a9N1RXtODuUaX8vIN1eIGhu1wL36B32bFYltRhRim/pW0
MKuvLgz9jdc5dQu2KA/X6yzsbWmK+f0ay22p+Se2/2a2PuPCfcrY+kSMQvP1
KSpMnfraUKb7jeZQ2ArGcsIyYlTMb89B7R5w56bMxf4exgIbJwHbg5kmrktf
Cb0q6cKY5oisn31F1zGEM+012XsfYnObosYORJFbWhNAK+2JlUy6lhJyaElD
ar9DguMc7iEp1cjK43Hl2jEp1CmkcblNpGgGXHYUuabWadOawA3FxweHJ8Rx
NAn9tDojAsxDo9duda386wr06X4kbhiKt8oz8yLV1GqbmvqwtZp2GdEqTi/T
bJ/WONE+29k6ll5Tn01p1nB4Zo9RQI9YMR+I0UnaqeFacix1V9pCrCTZqAGu
oyN+SPtYOEKvZH6SokhxX1g+lsKjrrzKinnIZ7gaUnTk0Z3XWHQkz6eT1CNj
wgyUN0/JDnXrx7GPizQH0GOXFM/7VJfbLKNoqZHmlKJAGBMfw4k7cXoVmFef
2zTKG39k60Wv4925fGq9O+laPsIPyXpuMl2OVQ/FvKKpvMLnccfeRmTk5f1G
LNOMLS5MCl7l7lv+YkMkjcy8B+m3rI2RpP8BRY6uGoGuspV8tJ1Qe1fa4/lx
FdmHmrbn/es8CvQfF3dCbeNrlqKSlMOxh/2i4j/2nc+fouK2x9WYKcVwHYXr
WS+EuFSZ9p7JkWq/e2qFOsSgTfjbouxsXcWix0mxd1UQ9w5+35Oma2CxL/ft
7svYJSMmZhH5PlJ6SLhvvowesgExsQkWsrVEntIkq36p79f2lPocvrICbdh8
VX+x186K5C22Xovylc2l8ZUa2PP3/D3eF0Kozsd47mL0z8vT6sl7HSpepvge
rOGLupvKvpdoEnDueFm4jeHsMgZ/vAZrC9dgfeEaNBeuwcbCNdhcuAZbC9dg
e+Ea1LO7JxepQ70AOiw+MtZzYyOv72y8kiaLj5H13Cjprna9rCYrufbJmmy/
mrfWCuGxqEURvLZGzw8UQ4/FZzasRxF8t0Z3GBdDj8XnOqzH4jOeunruphh6
FCP7KUYGVCtIFlQrSCZUm5ENvaYexYin+fnQU/Rw4fY6hL2X5F9PgjqEkLwd
144I7/5ws9s4haS2wVW2O4LH8uI4haTnGvu0J3ni7EKvq/LiWLel+T4Ke30t
xEpae+w5e35mBTOGszl4fc7dIUhh8S573gPk5/bOBD/Ho+8biWN9rrfCfman
EeV1aYyE3WCvIoaRZMX43GmfdiX5ThN7zzyNN2Xtge11omXZGL6vv027xbhv
attwTfV0Cm/K8tdhQ7ike/bZYvRdDxXRy9Yb0dr1mIJ2eGXJ0rvMN/Sbn+rQ
PW0gfKfqndNK+lpCCbjmOM5w5hqvQt3m07i+dBo3lk7jtaXTeN3TuEH3yaS1
NviU5obie7U3sTGMRXGcHY1MDPbjkB2dDTT2jKrPGX+O1eA/0B1O4Z0jMQqb
L6xfHOfWD0enkRqB/BoanM+DreberZjG27yYP+h7K1O1s2ls3nc0hvITkPYI
G6fgcZltK3b/o4/1M53nylY2n5ytbJXZSpmtFDhbacBHP8sej/Ian47yjew5
9zJzKTOXMnMpM5cycylK5rL1hMxF3xdf5ixlzlLEnKX4I1KZp5R5SpmnlHlK
mafMm6dsv1qeokevl81TyiylzFJeYjzCPfvNMlNZKo2XP1NZtMZldlJmJ0/N
TlyIe+IJ5wwxWCyP0Xf1Pf3uFBeuz4DQeH3PbyjBp+TsBscofQqB/cS5WYlJ
UUjqVz4jfEo+51KGT4nmU+NzYneUMbCGfeUZvpwUlc2vnyPzLSROgRbSoTK6
4tyqYV3ZRwzn8sRoXZqLHLkXCbkXUVq2gV5Wil0/G26o/NO7bLgUfPYBnoUU
1j2Oc3laAL+0sLWA06fwbficzvToU4/EM3KXwi4/bNc4zuWZpXNI4et8MVPn
C09nF2uevw05zVOBqNGIIk8rswC7niHOL2c3o/oKVoRnFT0kSo1T2pl7DO/n
8HEZbgZ9psZa37NTVH6d4qcYhRT4HCe2JI97E5ULTIU5pzyORZwbyZ8vtufv
5ZexvYztZWwvY3sZ2183tvswzuaPIZLcUBxjGveaz+k38wFzjVf71G7f6E59
c1Z/DKpLjsHMmYs859ZX+H6YoRipiPsQHY308zKPP8v4Qxa7zaz0Xo0/22JV
NGCGwuMYWzLawRZ86vTOi6ZaD9QnvsWk2XNmloxv9lkD/nU1+zGS+e0/qyB/
3ZNsS5n35MQinJD7Paey/lXOKK3mWLvrC8yr59/42302JQZLcbPX6f5KvV2n
IvCNRPpcfX2uYJ0wo4xjIviEF0Oh1/D0eWtuvXpkIXnnrOGZmOastm063YS9
kfv83jnJ7Vx5HvrmBlHyuShIa3CzT5H6munHI5FuJd9i03TSaa/jqKfmUSA+
r82Q4oDW//sq1iCf/e4DY1nsVyhxXo74acId9Qv1QGnxE4XPIMtoCX5PDdfl
B/HvN3+8+f3Nf96wbfp4SXnJgNoAIXj6KWvKvnylbHdM3sflp96FMx9lRZWI
efsdaa5P/KhYkYMzcvf8zErWxynseXY6LtdP73EwTr9DLEWj+zw8K9enrCor
eb62m9JobJ+wWo3C/JjhQt3xuxod681aJcf5O6HP7jXXFXGT/bbjDedBd1TH
W5B+SyNQeDJTSCHJi9oq/pq80YdKxyuwbHwvIErHkc7EPd0DRme+Tteu6mVM
1SCj+pi9mexQzWrCnd28846uFZfvYdUkBltsL8tU9VmNPlTTsVW583IXg5C0
7ow3tXTfcMWQI5H/lrsdFX1i71j8PwzNIR8=</ImporterPrefs>
<ConformedAudioRate>9223372036854775807</ConformedAudioRate>
<CaptureStatus>0</CaptureStatus>
<OfflineReason>0</OfflineReason>
<Infinite>true</Infinite>
<LogComment></LogComment>
<AlternateTapeName></AlternateTapeName>
<AlternateStart>0</AlternateStart>
<FileKey></FileKey>
<Title>Titleb046</Title>
<ImplementationID>ad0be7ce-e015-4877-9777-93c98f30dcac</ImplementationID>
<Node Version="1">
</Node>
<VideoStream ObjectRef="292"/>
<TapeName></TapeName>
<FilePath>1414091852</FilePath>
<Start>0</Start>
</Media>
Oui je sais ce n'est pas très clair, mais c'est un peu galère à expliquer quand on n'y connait rien ^^
En tout cas, je pense que pour ceux qui maîtrisent le python ça doit se faire assez facilement... enfin j'imagine..

En tout cas merci d'avance à ceux qui auront le courage de s'y atteler !

nbrau