From 233045f889454889de32a75a08581dfa8b7678b4 Mon Sep 17 00:00:00 2001 From: chfw Date: Wed, 7 Oct 2020 22:58:17 +0100 Subject: [PATCH] :bug: fix the potential to leave unclosed handle. --- pyexcel_io/readers/csv_in_file.py | 1 + pyexcel_io/writers/csv_in_file.py | 12 +++++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/pyexcel_io/readers/csv_in_file.py b/pyexcel_io/readers/csv_in_file.py index 8e76930..b926242 100644 --- a/pyexcel_io/readers/csv_in_file.py +++ b/pyexcel_io/readers/csv_in_file.py @@ -61,3 +61,4 @@ class FileReader(IReader): def close(self): for reader in self.handles: reader.close() + self.handles = [] diff --git a/pyexcel_io/writers/csv_in_file.py b/pyexcel_io/writers/csv_in_file.py index 21eb85c..46b23ac 100644 --- a/pyexcel_io/writers/csv_in_file.py +++ b/pyexcel_io/writers/csv_in_file.py @@ -10,18 +10,20 @@ class CsvFileWriter(IWriter): if file_type == constants.FILE_FORMAT_TSV: self._keywords["dialect"] = constants.KEYWORD_TSV_DIALECT self.__index = 0 - self.writer = None + self.handlers = [] def create_sheet(self, name): - self.writer = CSVFileWriter( + writer = CSVFileWriter( self._file_alike_object, name, sheet_index=self.__index, **self._keywords ) self.__index = self.__index + 1 - return self.writer + self.handlers.append(writer) + return writer def close(self): - if self.writer: - self.writer.close() + for writer in self.handlers: + writer.close() + self.handlers = []