Articles

Python: Korzystanie StringIO i BytesIO do zarządzania danymi jako obiekt pliku

Posted on

Używając modułów buforowych (StringIO, BytesIO, cStringIO) możemy podszyć się ciąg lub bajtów danych jak plik.Te moduły buforowe pomagają nam naśladować nasze dane jak normalny plik, który możemy dalej używać do przetwarzania.

Do python2.7 byliśmy przy użyciu cStringIO lub StringIO podczas czynienia z tych danych steam.Now w Python 3.x, używamy io.StringIO lub io.BytesIO z modułu io, ponieważ moduły StringIO i cStringIO nie są już dostępne w Pythonie 3.x.

W Pythonie 2.7 moduł StringIO był zdolny do obsługi Byte jak również Unicode Ale w python3 będziesz musiał użyć oddzielnego BytesIO do obsługi łańcuchów Byte i StringIO do obsługi łańcuchów Unicode.

  • io.StringIO wymaga łańcucha Unicode.
  • io.BytesIO wymaga łańcucha bajtowego.
  • StringIO.StringIO pozwala na łańcuch Unicode lub Bytes.
  • cStringIO.StringIO wymaga łańcucha zakodowanego jako łańcuch bajtowy.

Tutaj jest prosty przykład z użyciem modułu io

Tutaj każdy kolejny zapis dołącza dane do obiektu strumienia tak jak plik

Te metody wymagają specjalnej wzmianki:

getvalue()

Pobierz całą zawartość pliku file” w dowolnym momencie przed wywołaniem metody close() obiektu file.

close()

Zwolnij bufor pamięci i wykonaj pracę z obiektem bufora.

seek()

Możesz użyć seek do przesunięcia kursora nad danymi jak seek(0) dla początku pliku

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *