Home  >  Article  >  Backend Development  >  python study notes - StringIO and BytesIO

python study notes - StringIO and BytesIO

高洛峰
高洛峰Original
2017-02-17 11:50:341511browse

What we said before was reading and writing real files. In fact, we can also virtualize a file in memory for reading and writing. The official modules provided by Python to us are io.StringIO and io.BytesIO.

io.StringIO

String IO is used to read and write strings in memory. StringIO can be initialized by passing in a character. For example

string = StringIO("This is Demo")

For example:

from io import StringIO

s = StringIO()
s.write("Yes\nYEs")
s.seek(0)
# 将指针拨回到开始位置,否则将会读取不到任何东西

content = s.read()
print content

StringIO creates a file-like object that has all the methods of File Object. StringIO also has two special methods, namely the getvalue() method and the close() method.

  • getvalue() method is used to obtain the content written in StringIO

  • close() method closes StringIO and releases memory.

io.BytesIO

StringIO can only process string type data, while BytesIO can be used to process binary type data. The usage of BytesIO is similar to StringIO

StringIO.StringIO

When searching for documents, I found that there is also a StringIO under StringIO, and the two are very similar. Googled everything. There is an answer on stackoverflow:

An in-memory stream for unicode text. It inherits TextIOWrapper.

This module implements a file-like class, StringIO, that reads and writes a string buffer ( also known as memory files).io.StringIO is a class. It handles Unicode. It reflects the preferred Python 3 library structure.

StringIO.StringIO is a class. It handles strings. It reflects the legacy Python 2 library structure.

What should be preferred?Always move forward toward the new library organization. The io.open should be used to replace the built-in Unicode-unaware open.

Forward. Move forward.

The general idea is that StringIO is the legacy of python2 and will be replaced by io.StringIO in the future. It is recommended to use io.StringIO.


More python study notes - For articles related to StringIO and BytesIO, please pay attention to the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn