>  기사  >  백엔드 개발  >  Python 연구 노트 - StringIO 및 BytesIO

Python 연구 노트 - StringIO 및 BytesIO

高洛峰
高洛峰원래의
2017-02-17 11:50:341592검색

이전에 이야기했던 것은 실제 파일을 읽고 쓰는 것이었습니다. 실제로 읽기 및 쓰기를 위해 메모리의 파일을 가상화할 수도 있습니다. Python에서 우리에게 제공하는 공식 모듈은 io.StringIO와 io.BytesIO입니다.

io.StringIO

String IO는 메모리에서 문자열을 읽고 쓰는 데 사용됩니다. StringIO는 문자를 전달하여 초기화할 수 있습니다. 예:

string = StringIO("This is Demo")

예:

from io import StringIO

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

content = s.read()
print content

StringIO는 파일 개체의 모든 메서드를 포함하는 파일과 유사한 개체를 만듭니다. StringIO에는 getvalue() 메서드와 close() 메서드라는 두 가지 특수 메서드도 있습니다.

  • getvalue() 메서드는 StringIO에 작성된 콘텐츠를 가져오는 데 사용됩니다.

  • close() 메서드는 StringIO를 닫고 메모리를 해제합니다.

io.BytesIO

StringIO는 문자열 유형의 데이터만 처리할 수 있으며, BytesIO는 바이너리 유형의 데이터를 처리하는 데 사용할 수 있습니다. BytesIO의 사용법은 StringIO

StringIO.StringIO

문서를 검색해 보니 StringIO 아래에도 StringIO가 있는 것을 발견했는데 둘은 매우 유사합니다. 모든 것을 구글링했습니다. stackoverflow에 대한 답이 있습니다:

유니코드 텍스트를 위한 메모리 내 스트림. TextIOWrapper를 상속합니다.

이 모듈은 문자열 버퍼를 읽고 쓰는 파일과 유사한 클래스 StringIO를 구현합니다. (메모리 파일이라고도 함).io.StringIO는 유니코드를 처리하며 기본 Python 3 라이브러리 구조를 반영합니다.

StringIO.StringIO는 문자열을 처리합니다. 2 라이브러리 구조.

무엇을 선호해야 할까요? 내장된 유니코드 비인식 오픈을 대체하려면 io.open을 사용해야 합니다.

앞으로. 앞으로 나아가세요.

일반적인 아이디어는 StringIO가 python2의 유산이며 향후 io.StringIO로 대체된다는 것입니다. io.StringIO를 사용하는 것이 좋습니다.


더 많은 Python 학습 노트 - StringIO 및 BytesIO 관련 기사는 PHP 중국어 웹사이트를 주목하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.