How to convert StringIO object to BytesIO object vice versa.
I want to read a string with the io.StringIO and then convert it to an io.BytesIO object and vice versa, how can I do this?
Below is the example source code which can implement python StringIO and BytesIO object converts.
import io
# Convert a StringIO object to BytesIO object.
def stringio_to_bytesio(str):
str_io_object = io.StringIO(str)
str_data = str_io_object.read().encode('utf8')
bytes_io_object = io.BytesIO(str_data)
print(bytes_io_object)
print(bytes_io_object.read())
# Use io.TextIOWrapper to convert BytesIO object to a string. Then we can build a StringIO object on the string.
def bytesio_to_stringio(bytes_str):
data = io.BytesIO(bytes_str)
# Create an instance of io.TextIOWrapper class.
text_wrapper = io.TextIOWrapper(data, encoding='utf-8')
str = text_wrapper.read()
str_io_object = io.StringIO(str)
print(str_io_object)
print(str)
if __name__ == '__main__':
bytes_str = stringio_to_bytesio('I love python')
bytesio_to_stringio(b'hello python')
Source (with more details): https://www.code-learner.com/python-stringio-and-bytesio-example/