Lecture du contenu d'un fichier compressé en mode texte ?
Bonjour,
lorsque j'étais en python 2.7, je pouvais parser un fichier texte compressé pour réaliser mes traitements. Depuis 3.3, les données lues sont binaires et mes traitements échouent:
Voici un ecm :
soit un fichier foo.txt, foo.zip (contenant le foo.txt compressé)!
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| #!/usr/bin/env python
# -*- coding: utf-8 -*-
from zipfile import ZipFile
bar=(ZipFile('foo.zip')).open('foo.txt')
foo=open('foo.txt','r')
for ligne in foo:
print(ligne.strip('\n'))
print("Zippé maintenant")
for ligne in bar:
print(ligne)
print(ligne.strip('\n')) |
Résultats en 2.7:
Code:
1 2 3 4 5 6 7 8 9
| AAA
BBB
CCC
DDD
Zippé maintenant
AAA
BBB
CCC
DDD |
Résultats en 3.3:
Code:
1 2 3 4 5 6 7 8 9 10
| AAA
BBB
CCC
DDD
Zippé maintenant
b'AAA\n'
Traceback (most recent call last):
File "ecm.py", line 15, in <module>
print(ligne.strip('\n'))
TypeError: Type str doesn't support the buffer API |
J'aimerai, si possible éviter de désarchiver temporairement le fichier à lire.
Cordialement