Zum Inhalt springen
Menü
Sie müssen registriert sein, um mit der Community zu interagieren.
Diese Frage wurde gekennzeichnet
4 Antworten
18421 Ansichten

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
Verwerfen
Beste Antwort

Hi,

Instead of StringIO try with BytesIO

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

Thanks

Avatar
Verwerfen
Beste Antwort

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
Verwerfen
Beste Antwort

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
Verwerfen
Verknüpfte Beiträge Antworten Ansichten Aktivität
2
Feb. 24
15048
1
Dez. 22
4721
2
Dez. 22
14005
2
Juni 22
5866
2
Juni 22
4380