2010-03-23 3 views
0

Ceci est le premier script Python que j'ai essayé de créer. Je suis en train de lire un fichier XML à partir d'un paquet tar.gz et ensuite je veux l'imprimer. Cependant, je n'arrive pas à le transformer d'un objet semblable à un fichier à une chaîne. J'ai essayé de le faire de différentes façons, y compris str(), tostring(), etc, mais rien ne fonctionne pour moi.Python: Impression sympa d'un fichier xml directement à partir d'un paquet tar.gz

Pour les tests que je viens d'essayer d'imprimer la chaîne à « imprimer myfile [0: 200] » et il génère toujours « <tarfile.ExFileObject object at 0x10053df10> »

import os 
import sys 
import tarfile 
from xml.dom.minidom import parseString 

tar = tarfile.open("data/ucd.all.flat.tar.gz", "r") 
getfile = tar.extractfile("ucd.all.flat.xml") 

myfile = str(getfile) 
print myfile[0:200] 

output = parseString(getfile).toprettyxml() 
print output 

tar.close() 

Répondre

2

Untested mais vous avez probablement juste besoin d'un appel read() sur le Fichier- comme objet retourné par tarfile, par exemple:

myfile = getfile.read() 
+1

également, passez la chaîne résultante à parseString, plutôt que l'objet fichier –

Questions connexes