Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
4 Risposte
18376 Visualizzazioni

Odoo 11, uses Python3, which is good, but I wonder what is the best way to read/write to file-like objects.

Code which seemed to work like a charm in Py2.7, failed to execute in Py3, thus I wonder what could I be doing wrong...

I did changed import StringIO from io, but no luck. Anybody faced issues like this, any suggestions would be appreciated.

from io import StringIO

wb = xlwt.Workbook(encoding="UTF-8")
ws = wb.add_sheet('Sheet1'
....

fp = StringIO()
wb.save(fp)
fp.seek(0)
data = fp.read()
fp.close()


Error:

File "/usr/lib/python3.6/zipfile.py", line 1784, in _write_end_record
self.fp.write(endrec)
TypeError: string argument expected, got 'bytes'

Thanks

Avatar
Abbandona
Risposta migliore

Hi,

Instead of StringIO try with BytesIO

check this for more info : Error. string argument expected, got 'bytes'

Thanks

Avatar
Abbandona
Risposta migliore

In python3 The StringIO and cStringIO modules are gone. You can import io and use io.StringIO or io.BytesIO

eg:

import io
f = io.BytesIO(b"some initial binary data: \x00\x01")
f = io.StringIO("some initial text data")



Avatar
Abbandona
Risposta migliore

Hey Deep,

Please Try with ,

from io import BytesIO

fp = BytesIO()

For more ref :

> \https://stackoverflow.com/questions/37462075/confusing-about-stringio-cstringio-and-byteio

Thanks.

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
2
feb 24
14991
1
dic 22
4667
2
dic 22
13951
2
giu 22
5740
2
giu 22
4341