Seite 1 von 1

Fehler beim parsen von temporärer XML Datei

Verfasst: Dienstag 7. Februar 2006, 14:35
von herold
Hallo,

ich versuche mich gerade in ersten Gehversuchen in Python und wollte
ein kleines Tool zur Verwaltung unseres internen Maven Repositories schreiben. Dabei komme ich leider bei folgendem Problem nicht weiter.

Ich entpacke mir ein Zip Archiv mit Dateien die in das Repository kopiert werden sollen und will dann eine dieser Dateien mit minidom parsen. Dabei bricht Python leider mit einer Fehlermeldung ab. Folgend der Quellcode und anschließend der Traceback:

Code: Alles auswählen

import zipfile
import tempfile
import xml.dom.minidom

bundlefile = 'C:\\commons-logging-1.0.4-bundle.zip'

bundle = zipfile.ZipFile(bundlefile, 'r')
bundlefiles = {}
for file in bundle.namelist():
	bundlefiles[file] = tempfile.TemporaryFile().write(bundle.read(file))

pomfile = bundlefiles['pom.xml']
pomdoc = xml.dom.minidom.parse(pomfile)
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\tkettler\Eigene Dateien\Develop\test.py", line 16, in ?
pomxml = xml.dom.minidom.parse(pomfile)
File "C:\Python24\lib\xml\dom\minidom.py", line 1915, in parse
return expatbuilder.parse(file)
File "C:\Python24\lib\xml\dom\expatbuilder.py", line 928, in parse
result = builder.parseFile(file)
File "C:\Python24\lib\xml\dom\expatbuilder.py", line 204, in parseFile
buffer = file.read(16*1024)
AttributeError: 'NoneType' object has no attribute 'read'


Soll das heißen, dass das File Objekt nicht zum Lesen geöffnet ist? Wenn ja, wie kann ich das einstellen?

-Tim

Re: Fehler beim parsen von temporärer XML Datei

Verfasst: Dienstag 7. Februar 2006, 18:36
von Joghurt
herold hat geschrieben:

Code: Alles auswählen

	bundlefiles[file] = tempfile.TemporaryFile().write(bundle.read(file))
write gibt immer None zurück
Was du willst, ist wahrscheinlich:

Code: Alles auswählen

    bundlefiles[file] = tempfile.TemporaryFile()
    bundlefiles[file].write(bundle.read(file))