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 : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Résultats en 3.3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 AAA BBB CCC DDD Zippé maintenant AAA BBB CCC DDD
J'aimerai, si possible éviter de désarchiver temporairement le fichier à lire.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Cordialement
Partager