debian-python-pyexcel-io/pyexcel_io/readers/csv_content_reader.py

22 lines
773 B
Python

import mmap
from pyexcel_io.book import _convert_content_to_stream
from pyexcel_io.readers.csvr import CSVMemoryMapIterator
from pyexcel_io.readers.csv_memory_reader import MemoryReader
class ContentReader(MemoryReader):
def open(self, file_content, **keywords):
encoding = keywords.get("encoding", "utf-8")
if isinstance(file_content, mmap.mmap):
# load from mmap
file_stream = CSVMemoryMapIterator(file_content, encoding)
else:
if isinstance(file_content, bytes):
file_content = file_content.decode(encoding)
file_stream = _convert_content_to_stream(
file_content, self.file_type
)
super(ContentReader, self).open(file_stream, **keywords)