7
Mam problem z tym kodem:tmpfile i kombinacja gzip Problem
file = tempfile.TemporaryFile(mode='wrb')
file.write(base64.b64decode(data))
file.flush()
os.fsync(file)
# file.seek(0)
f = gzip.GzipFile(mode='rb', fileobj=file)
print f.read()
nie wiem dlaczego nie drukuje niczego. Gdybym odkomentowaniu file.seek następnie błąd:
File "/usr/lib/python2.5/gzip.py", line 263, in _read
self._read_gzip_header()
File "/usr/lib/python2.5/gzip.py", line 162, in _read_gzip_header
magic = self.fileobj.read(2)
IOError: [Errno 9] Bad file descriptor
Tylko dla informacji ta wersja działa bez zarzutu:
x = open("test.gzip", 'wb')
x.write(base64.b64decode(data))
x.close()
f = gzip.GzipFile('test.gzip', 'rb')
print f.read()
EDIT: Dla problemu WRB. Nie powoduje błędu podczas inicjowania. Python 2.5.2.
>>> t = tempfile.TemporaryFile(mode="wrb")
>>> t.write("test")
>>> t.seek(0)
>>> t.read()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IOError: [Errno 9] Bad file descriptor
Dziękujemy! I tempfile tego nie zgłasza. Może powinienem to zgłosić? –
@ Vojtech R. To robi. Spróbuj barebones 'fhandle = tempfile.TemporaryFile (mode = 'wrb')' (zwraca niepoprawny argument OSError Errno22 ...) – ChristopheD
@ CHristopheD. Dodałem przykład do pytania. Brak błędu do .read(). –